Bluetooth Microphone Control
API Reference
- group bt_gatt_micp
- Microphone Control Profile (MICP) - Since
- 2.7 
- Version
- 0.8.0 
 - Application error codes - 
BT_MICP_ERR_MUTE_DISABLED
- Mute/unmute commands are disabled. 
 - Microphone Control Profile mute states - 
BT_MICP_MUTE_UNMUTED
- The microphone state is unmuted. 
 - 
BT_MICP_MUTE_MUTED
- The microphone state is muted. 
 - 
BT_MICP_MUTE_DISABLED
- The microphone state is disabled and cannot be muted or unmuted. 
 - Defines - 
BT_MICP_MIC_DEV_AICS_CNT
- Defines the maximum number of Microphone Control Service instances for the Microphone Control Profile Microphone Device. 
 - Functions - 
int bt_micp_mic_dev_register(struct bt_micp_mic_dev_register_param *param)
- Initialize the Microphone Control Profile Microphone Device. - This will enable the Microphone Control Service instance and make it discoverable by Microphone Controllers. - Parameters:
- param – Pointer to an initialization structure. 
 
- Returns:
- 0 if success, errno on failure. 
 
 - 
int bt_micp_mic_dev_included_get(struct bt_micp_included *included)
- Get Microphone Device included services. - Returns a pointer to a struct that contains information about the Microphone Device included Audio Input Control Service instances. - Requires that - CONFIG_BT_MICP_MIC_DEV_AICSis enabled.- Parameters:
- included – Pointer to store the result in. 
 
- Returns:
- 0 if success, errno on failure. 
 
 - 
int bt_micp_mic_dev_unmute(void)
- Unmute the Microphone Device. - Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_dev_mute(void)
- Mute the Microphone Device. - Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_dev_mute_disable(void)
- Disable the mute functionality on the Microphone Device. - Can be reenabled by called bt_micp_mic_dev_mute or bt_micp_mic_dev_unmute. - Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_dev_mute_get(void)
- Read the mute state on the Microphone Device. - Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_ctlr_included_get(struct bt_micp_mic_ctlr *mic_ctlr, struct bt_micp_included *included)
- Get Microphone Control Profile included services. - Returns a pointer to a struct that contains information about the Microphone Control Profile included services instances, such as pointers to the Audio Input Control Service instances. - Requires that - CONFIG_BT_MICP_MIC_CTLR_AICSis enabled.- Parameters:
- mic_ctlr – Microphone Controller instance pointer. 
- included – [out] Pointer to store the result in. 
 
- Returns:
- 0 if success, errno on failure. 
 
 - 
int bt_micp_mic_ctlr_conn_get(const struct bt_micp_mic_ctlr *mic_ctlr, struct bt_conn **conn)
- Get the connection pointer of a Microphone Controller instance. - Get the Bluetooth connection pointer of a Microphone Controller instance. - Parameters:
- mic_ctlr – Microphone Controller instance pointer. 
- conn – Connection pointer. 
 
- Returns:
- 0 if success, errno on failure. 
 
 - 
struct bt_micp_mic_ctlr *bt_micp_mic_ctlr_get_by_conn(const struct bt_conn *conn)
- Get the volume controller from a connection pointer. - Get the Volume Control Profile Volume Controller pointer from a connection pointer. Only volume controllers that have been initiated via bt_micp_mic_ctlr_discover() can be retrieved. - Parameters:
- conn – Connection pointer. 
 
- Return values:
- Pointer – to a Microphone Control Profile Microphone Controller instance 
- NULL – if - connis NULL or if the connection has not done discovery yet
 
 
 - 
int bt_micp_mic_ctlr_discover(struct bt_conn *conn, struct bt_micp_mic_ctlr **mic_ctlr)
- Discover Microphone Control Service. - This will start a GATT discovery and setup handles and subscriptions. This shall be called once before any other actions can be executed for the peer device, and the bt_micp_mic_ctlr_cb::discover callback will notify when it is possible to start remote operations. - Parameters:
- conn – The connection to initialize the profile for. 
- mic_ctlr – [out] Valid remote instance object on success. 
 
- Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_ctlr_unmute(struct bt_micp_mic_ctlr *mic_ctlr)
- Unmute a remote Microphone Device. - Parameters:
- mic_ctlr – Microphone Controller instance pointer. 
 
- Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_ctlr_mute(struct bt_micp_mic_ctlr *mic_ctlr)
- Mute a remote Microphone Device. - Parameters:
- mic_ctlr – Microphone Controller instance pointer. 
 
- Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_ctlr_mute_get(struct bt_micp_mic_ctlr *mic_ctlr)
- Read the mute state of a remote Microphone Device. - Parameters:
- mic_ctlr – Microphone Controller instance pointer. 
 
- Returns:
- 0 on success, GATT error value on fail. 
 
 - 
int bt_micp_mic_ctlr_cb_register(struct bt_micp_mic_ctlr_cb *cb)
- Registers the callbacks used by Microphone Controller. - This can only be done as the client. - Parameters:
- cb – The callback structure. 
 
- Returns:
- 0 if success, errno on failure. 
 
 - 
struct bt_micp_mic_dev_register_param
- #include <micp.h>Register parameters structure for Microphone Control Service. Public Members - 
struct bt_aics_register_param aics_param[0]
- Register parameter structure for Audio Input Control Services. 
 - 
struct bt_micp_mic_dev_cb *cb
- Microphone Control Profile callback structure. 
 
- 
struct bt_aics_register_param aics_param[0]
 - 
struct bt_micp_included
- #include <micp.h>Microphone Control Profile included services. Used for to represent the Microphone Control Profile included service instances, for either a Microphone Controller or a Microphone Device. The instance pointers either represent local service instances, or remote service instances. 
 - 
struct bt_micp_mic_dev_cb
- #include <micp.h>Struct to hold the Microphone Device callbacks. These can be registered for usage with bt_micp_mic_dev_register(). Public Members - 
void (*mute)(uint8_t mute)
- Callback function for Microphone Device mute. - Called when the value is read with bt_micp_mic_dev_mute_get(), or if the value is changed by either the Microphone Device or a Microphone Controller. - Param mute:
- The mute setting of the Microphone Control Service. 
 
 
- 
void (*mute)(uint8_t mute)
 - 
struct bt_micp_mic_ctlr_cb
- #include <micp.h>Struct to hold the Microphone Controller callbacks. These can be registered for usage with bt_micp_mic_ctlr_cb_register(). Public Members - 
void (*mute)(struct bt_micp_mic_ctlr *mic_ctlr, int err, uint8_t mute)
- Callback function for Microphone Control Profile mute. - Called when the value is read, or if the value is changed by either the Microphone Device or a Microphone Controller. - Param mic_ctlr:
- Microphone Controller instance pointer. 
- Param err:
- Error value. 0 on success, GATT error or errno on fail. For notifications, this will always be 0. 
- Param mute:
- The mute setting of the Microphone Control Service. 
 
 - 
void (*discover)(struct bt_micp_mic_ctlr *mic_ctlr, int err, uint8_t aics_count)
- Callback function for bt_micp_mic_ctlr_discover(). - Param mic_ctlr:
- Microphone Controller instance pointer. 
- Param err:
- Error value. 0 on success, GATT error or errno on fail. 
- Param aics_count:
- Number of Audio Input Control Service instances on peer device. 
 
 - 
void (*mute_written)(struct bt_micp_mic_ctlr *mic_ctlr, int err)
- Callback function for Microphone Control Profile mute/unmute. - Param mic_ctlr:
- Microphone Controller instance pointer. 
- Param err:
- Error value. 0 on success, GATT error or errno on fail. 
 
 - 
void (*unmute_written)(struct bt_micp_mic_ctlr *mic_ctlr, int err)
- Callback function for Microphone Control Profile mute/unmute. - Param mic_ctlr:
- Microphone Controller instance pointer. 
- Param err:
- Error value. 0 on success, GATT error or errno on fail. 
 
 
- 
void (*mute)(struct bt_micp_mic_ctlr *mic_ctlr, int err, uint8_t mute)