Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
aics.h File Reference

Bluetooth Audio Input Control Service APIs. More...

#include <stdint.h>
#include <stdbool.h>
#include <zephyr/autoconf.h>
#include <zephyr/bluetooth/bluetooth.h>

Go to the source code of this file.

Data Structures

struct  bt_aics_register_param
 Structure for initializing a Audio Input Control Service instance. More...
 
struct  bt_aics_discover_param
 Structure for discovering a Audio Input Control Service instance. More...
 
struct  bt_aics_cb
 Struct to hold callbacks for the Audio Input Control Service. More...
 

Macros

Audio Input Control Service mute states
#define BT_AICS_STATE_UNMUTED   0x00
 The mute state is unmuted.
 
#define BT_AICS_STATE_MUTED   0x01
 The mute state is muted.
 
#define BT_AICS_STATE_MUTE_DISABLED   0x02
 The mute state is disabled.
 
Audio Input Control Service input modes
#define BT_AICS_MODE_MANUAL_ONLY   0x00
 The gain mode is manual only and cannot be changed to automatic.
 
#define BT_AICS_MODE_AUTO_ONLY   0x01
 The gain mode is automatic only and cannot be changed to manual.
 
#define BT_AICS_MODE_MANUAL   0x02
 The gain mode is manual.
 
#define BT_AICS_MODE_AUTO   0x03
 The gain mode is automatic.
 
Audio Input Control Service input types
#define BT_AICS_INPUT_TYPE_UNSPECIFIED   0x00
 The input is unspecified.
 
#define BT_AICS_INPUT_TYPE_BLUETOOTH   0x01
 The input is a Bluetooth Audio Stream.
 
#define BT_AICS_INPUT_TYPE_MICROPHONE   0x02
 The input is a microphone.
 
#define BT_AICS_INPUT_TYPE_ANALOG   0x03
 The input is analog.
 
#define BT_AICS_INPUT_TYPE_DIGITAL   0x04
 The input is digital.
 
#define BT_AICS_INPUT_TYPE_RADIO   0x05
 The input is a radio (AM/FM/XM/etc.)
 
#define BT_AICS_INPUT_TYPE_STREAMING   0x06
 The input is a Streaming Audio Source.
 
#define BT_AICS_INPUT_TYPE_AMBIENT   0x07
 The input is transparent / pass-through.
 
Audio Input Control Service Error codes
#define BT_AICS_ERR_INVALID_COUNTER   0x80
 The Change_Counter operand value does not match the Change_Counter field value of the Audio Input State characteristic.
 
#define BT_AICS_ERR_OP_NOT_SUPPORTED   0x81
 An invalid opcode has been used in a control point procedure.
 
#define BT_AICS_ERR_MUTE_DISABLED   0x82
 Mute/unmute commands are disabled.
 
#define BT_AICS_ERR_OUT_OF_RANGE   0x83
 An operand value used in a control point procedure is outside the permissible range.
 
#define BT_AICS_ERR_GAIN_MODE_NOT_ALLOWED   0x84
 A requested gain mode change is not allowed.
 

Typedefs

typedef void(* bt_aics_write_cb) (struct bt_aics *inst, int err)
 Callback function for writes.
 
typedef void(* bt_aics_state_cb) (struct bt_aics *inst, int err, int8_t gain, uint8_t mute, uint8_t mode)
 Callback function for the input state.
 
typedef void(* bt_aics_gain_setting_cb) (struct bt_aics *inst, int err, uint8_t units, int8_t minimum, int8_t maximum)
 Callback function for the gain settings.
 
typedef void(* bt_aics_type_cb) (struct bt_aics *inst, int err, uint8_t type)
 Callback function for the input type.
 
typedef void(* bt_aics_status_cb) (struct bt_aics *inst, int err, bool active)
 Callback function for the input status.
 
typedef void(* bt_aics_description_cb) (struct bt_aics *inst, int err, char *description)
 Callback function for the description.
 
typedef void(* bt_aics_discover_cb) (struct bt_aics *inst, int err)
 Callback function for bt_aics_discover.
 

Functions

struct bt_aics * bt_aics_free_instance_get (void)
 Get a free instance of Audio Input Control Service from the pool.
 
void * bt_aics_svc_decl_get (struct bt_aics *aics)
 Get the service declaration attribute.
 
int bt_aics_client_conn_get (const struct bt_aics *aics, struct bt_conn **conn)
 Get the connection pointer of a client instance.
 
int bt_aics_register (struct bt_aics *aics, struct bt_aics_register_param *param)
 Initialize the Audio Input Control Service instance.
 
int bt_aics_discover (struct bt_conn *conn, struct bt_aics *inst, const struct bt_aics_discover_param *param)
 Discover a Audio Input Control Service.
 
int bt_aics_deactivate (struct bt_aics *inst)
 Deactivates a Audio Input Control Service instance.
 
int bt_aics_activate (struct bt_aics *inst)
 Activates a Audio Input Control Service instance.
 
int bt_aics_state_get (struct bt_aics *inst)
 Read the Audio Input Control Service input state.
 
int bt_aics_gain_setting_get (struct bt_aics *inst)
 Read the Audio Input Control Service gain settings.
 
int bt_aics_type_get (struct bt_aics *inst)
 Read the Audio Input Control Service input type.
 
int bt_aics_status_get (struct bt_aics *inst)
 Read the Audio Input Control Service input status.
 
int bt_aics_disable_mute (struct bt_aics *inst)
 Disable mute in the Audio Input Control Service.
 
int bt_aics_unmute (struct bt_aics *inst)
 Unmute the Audio Input Control Service input.
 
int bt_aics_mute (struct bt_aics *inst)
 Mute the Audio Input Control Service input.
 
int bt_aics_gain_set_manual_only (struct bt_aics *inst)
 Set manual only gain mode in Audio Input Control Service.
 
int bt_aics_gain_set_auto_only (struct bt_aics *inst)
 Set automatic only gain mode in Audio Input Control Service.
 
int bt_aics_manual_gain_set (struct bt_aics *inst)
 Set input gain to manual.
 
int bt_aics_automatic_gain_set (struct bt_aics *inst)
 Set the input gain to automatic.
 
int bt_aics_gain_set (struct bt_aics *inst, int8_t gain)
 Set the input gain.
 
int bt_aics_description_get (struct bt_aics *inst)
 Read the Audio Input Control Service description.
 
int bt_aics_description_set (struct bt_aics *inst, const char *description)
 Set the Audio Input Control Service description.
 
struct bt_aics * bt_aics_client_free_instance_get (void)
 Get a new Audio Input Control Service client instance.
 
void bt_aics_client_cb_register (struct bt_aics *inst, struct bt_aics_cb *cb)
 Registers the callbacks for the Audio Input Control Service client.
 

Detailed Description

Bluetooth Audio Input Control Service APIs.