Zephyr API Documentation 4.4.0-rc1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
vocs.h
Go to the documentation of this file.
1
5
6/*
7 * Copyright (c) 2020-2024 Nordic Semiconductor ASA
8 *
9 * SPDX-License-Identifier: Apache-2.0
10 */
11
12#ifndef ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_VOCS_H_
13#define ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_VOCS_H_
14
34
35#include <stdint.h>
36#include <stdbool.h>
37
39
40#ifdef __cplusplus
41extern "C" {
42#endif
43
52#define BT_VOCS_ERR_INVALID_COUNTER 0x80
54#define BT_VOCS_ERR_OP_NOT_SUPPORTED 0x81
56#define BT_VOCS_ERR_OUT_OF_RANGE 0x82
58
64#define BT_VOCS_MIN_OFFSET -255
66#define BT_VOCS_MAX_OFFSET 255
68
73struct bt_vocs;
74
95
111
118
128void *bt_vocs_svc_decl_get(struct bt_vocs *vocs);
129
141int bt_vocs_client_conn_get(const struct bt_vocs *vocs, struct bt_conn **conn);
142
151int bt_vocs_register(struct bt_vocs *vocs,
152 const struct bt_vocs_register_param *param);
153
165typedef void (*bt_vocs_state_cb)(struct bt_vocs *inst, int err, int16_t offset);
166
174typedef void (*bt_vocs_set_offset_cb)(struct bt_vocs *inst, int err);
175
187typedef void (*bt_vocs_location_cb)(struct bt_vocs *inst, int err,
188 uint32_t location);
189
201typedef void (*bt_vocs_description_cb)(struct bt_vocs *inst, int err,
202 char *description);
203
216typedef void (*bt_vocs_discover_cb)(struct bt_vocs *inst, int err);
217
231
232#if defined(CONFIG_BT_VOCS_CLIENT) || defined(__DOXYGEN__)
245#endif /* CONFIG_BT_VOCS_CLIENT */
246};
247
257int bt_vocs_state_get(struct bt_vocs *inst);
258
267int bt_vocs_state_set(struct bt_vocs *inst, int16_t offset);
268
279
288int bt_vocs_location_set(struct bt_vocs *inst, uint32_t location);
289
300
309int bt_vocs_description_set(struct bt_vocs *inst, const char *description);
310
317void bt_vocs_client_cb_register(struct bt_vocs *inst, struct bt_vocs_cb *cb);
318
325
337int bt_vocs_discover(struct bt_conn *conn, struct bt_vocs *inst,
338 const struct bt_vocs_discover_param *param);
339
340#ifdef __cplusplus
341}
342#endif
343
347
348#endif /* ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_VOCS_H_ */
Bluetooth connection handling.
int bt_vocs_location_set(struct bt_vocs *inst, uint32_t location)
Set the Volume Offset Control Service location.
void(* bt_vocs_set_offset_cb)(struct bt_vocs *inst, int err)
Callback function for setting offset.
Definition vocs.h:174
int bt_vocs_state_set(struct bt_vocs *inst, int16_t offset)
Set the Volume Offset Control Service offset state.
int bt_vocs_discover(struct bt_conn *conn, struct bt_vocs *inst, const struct bt_vocs_discover_param *param)
Discover a Volume Offset Control Service.
struct bt_vocs * bt_vocs_client_free_instance_get(void)
Returns a pointer to a Volume Offset Control Service client instance.
int bt_vocs_state_get(struct bt_vocs *inst)
Read the Volume Offset Control Service offset state.
void(* bt_vocs_location_cb)(struct bt_vocs *inst, int err, uint32_t location)
Callback function for the location.
Definition vocs.h:187
int bt_vocs_location_get(struct bt_vocs *inst)
Read the Volume Offset Control Service location.
void * bt_vocs_svc_decl_get(struct bt_vocs *vocs)
Get the service declaration attribute.
void(* bt_vocs_state_cb)(struct bt_vocs *inst, int err, int16_t offset)
Callback function for the offset state.
Definition vocs.h:165
void(* bt_vocs_description_cb)(struct bt_vocs *inst, int err, char *description)
Callback function for the description.
Definition vocs.h:201
int bt_vocs_description_get(struct bt_vocs *inst)
Read the Volume Offset Control Service output description.
void bt_vocs_client_cb_register(struct bt_vocs *inst, struct bt_vocs_cb *cb)
Registers the callbacks for the Volume Offset Control Service client.
int bt_vocs_register(struct bt_vocs *vocs, const struct bt_vocs_register_param *param)
Register the Volume Offset Control Service instance.
int bt_vocs_description_set(struct bt_vocs *inst, const char *description)
Set the Volume Offset Control Service description.
void(* bt_vocs_discover_cb)(struct bt_vocs *inst, int err)
Callback function for bt_vocs_discover.
Definition vocs.h:216
struct bt_vocs * bt_vocs_free_instance_get(void)
Get a free service instance of Volume Offset Control Service from the pool.
int bt_vocs_client_conn_get(const struct bt_vocs *vocs, struct bt_conn **conn)
Get the connection pointer of a client instance.
__UINT32_TYPE__ uint32_t
Definition stdint.h:90
__UINT16_TYPE__ uint16_t
Definition stdint.h:89
__INT16_TYPE__ int16_t
Definition stdint.h:73
Opaque type representing a connection to a remote device.
Struct to hold the Volume Offset Control Service callbacks.
Definition vocs.h:224
bt_vocs_set_offset_cb set_offset
The set offset procedure has completed.
Definition vocs.h:244
bt_vocs_discover_cb discover
The discovery procedure has completed.
Definition vocs.h:238
bt_vocs_location_cb location
The location has changed.
Definition vocs.h:228
bt_vocs_description_cb description
The Description has changed.
Definition vocs.h:230
bt_vocs_state_cb state
The offset state has changed.
Definition vocs.h:226
Structure for discovering a Volume Offset Control Service instance.
Definition vocs.h:97
uint16_t end_handle
The end handle of the discovering.
Definition vocs.h:109
uint16_t start_handle
The start handle of the discovering.
Definition vocs.h:103
Structure for registering a Volume Offset Control Service instance.
Definition vocs.h:76
uint32_t location
Audio Location bitmask.
Definition vocs.h:78
char * output_desc
Initial audio output description.
Definition vocs.h:87
struct bt_vocs_cb * cb
Pointer to the callback structure.
Definition vocs.h:93
bool location_writable
Boolean to set whether the location is writable by clients.
Definition vocs.h:81
bool desc_writable
Boolean to set whether the description is writable by clients.
Definition vocs.h:90
int16_t offset
Initial volume offset (-255 to 255).
Definition vocs.h:84
Opaque Volume Offset Control Service instance.