Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
mics.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_MICS_H_
8#define ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_MICS_H_
9
22#include <zephyr/types.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#if defined(CONFIG_BT_MICS)
30#define BT_MICS_AICS_CNT CONFIG_BT_MICS_AICS_INSTANCE_COUNT
31#else
32#define BT_MICS_AICS_CNT 0
33#endif /* CONFIG_BT_MICS */
34
36#define BT_MICS_ERR_MUTE_DISABLED 0x80
37#define BT_MICS_ERR_VAL_OUT_OF_RANGE 0x81
38
40#define BT_MICS_MUTE_UNMUTED 0x00
41#define BT_MICS_MUTE_MUTED 0x01
42#define BT_MICS_MUTE_DISABLED 0x02
43
45struct bt_mics;
46
51
53 struct bt_mics_cb *cb;
54};
55
67 struct bt_aics **aics;
68};
69
83 struct bt_mics **mics);
84
97int bt_mics_included_get(struct bt_mics *mics,
98 struct bt_mics_included *included);
99
111int bt_mics_client_conn_get(const struct bt_mics *mics, struct bt_conn **conn);
112
123typedef void (*bt_mics_discover_cb)(struct bt_mics *mics, int err,
124 uint8_t aics_count);
125
137typedef void (*bt_mics_mute_read_cb)(struct bt_mics *mics, int err,
138 uint8_t mute);
139
146typedef void (*bt_mics_mute_write_cb)(struct bt_mics *mics, int err);
147
150
151#if defined(CONFIG_BT_MICS_CLIENT)
152 bt_mics_discover_cb discover;
153 bt_mics_mute_write_cb mute_write;
154 bt_mics_mute_write_cb unmute_write;
155
157 struct bt_aics_cb aics_cb;
158#endif /* CONFIG_BT_MICS_CLIENT */
159};
160
176int bt_mics_discover(struct bt_conn *conn, struct bt_mics **mics);
177
185int bt_mics_unmute(struct bt_mics *mics);
186
194int bt_mics_mute(struct bt_mics *mics);
195
206int bt_mics_mute_disable(struct bt_mics *mics);
207
215int bt_mics_mute_get(struct bt_mics *mics);
216
225int bt_mics_aics_state_get(struct bt_mics *mics, struct bt_aics *inst);
226
235int bt_mics_aics_gain_setting_get(struct bt_mics *mics, struct bt_aics *inst);
236
245int bt_mics_aics_type_get(struct bt_mics *mics, struct bt_aics *inst);
246
255int bt_mics_aics_status_get(struct bt_mics *mics, struct bt_aics *inst);
256
265int bt_mics_aics_unmute(struct bt_mics *mics, struct bt_aics *inst);
266
275int bt_mics_aics_mute(struct bt_mics *mics, struct bt_aics *inst);
276
285int bt_mics_aics_manual_gain_set(struct bt_mics *mics, struct bt_aics *inst);
286
295int bt_mics_aics_automatic_gain_set(struct bt_mics *mics, struct bt_aics *inst);
296
306int bt_mics_aics_gain_set(struct bt_mics *mics, struct bt_aics *inst,
307 int8_t gain);
308
317int bt_mics_aics_description_get(struct bt_mics *mics, struct bt_aics *inst);
318
328int bt_mics_aics_description_set(struct bt_mics *mics, struct bt_aics *inst,
329 const char *description);
330
343int bt_mics_aics_deactivate(struct bt_mics *mics, struct bt_aics *inst);
344
358int bt_mics_aics_activate(struct bt_mics *mics, struct bt_aics *inst);
359
370
371#ifdef __cplusplus
372}
373#endif
374
379#endif /* ZEPHYR_INCLUDE_BLUETOOTH_SERVICES_MICS_H_ */
void
Definition: eswifi_shell.c:15
int bt_mics_aics_activate(struct bt_mics *mics, struct bt_aics *inst)
Activates a Audio Input Control Service instance.
int bt_mics_aics_unmute(struct bt_mics *mics, struct bt_aics *inst)
Unmute the Audio Input Control Service input.
int bt_mics_aics_state_get(struct bt_mics *mics, struct bt_aics *inst)
Read the Audio Input Control Service input state.
int bt_mics_register(struct bt_mics_register_param *param, struct bt_mics **mics)
Initialize the Microphone Input Control Service.
int bt_mics_client_conn_get(const struct bt_mics *mics, struct bt_conn **conn)
Get the connection pointer of a client instance.
void(* bt_mics_mute_write_cb)(struct bt_mics *mics, int err)
Callback function for Microphone Input Control Service mute/unmute.
Definition: mics.h:146
int bt_mics_mute_get(struct bt_mics *mics)
Read the mute state of a Microphone Input Control Service.
int bt_mics_mute_disable(struct bt_mics *mics)
Disable the mute functionality.
void(* bt_mics_discover_cb)(struct bt_mics *mics, int err, uint8_t aics_count)
Callback function for bt_mics_discover.
Definition: mics.h:123
void(* bt_mics_mute_read_cb)(struct bt_mics *mics, int err, uint8_t mute)
Callback function for Microphone Input Control Service mute.
Definition: mics.h:137
int bt_mics_aics_gain_setting_get(struct bt_mics *mics, struct bt_aics *inst)
Read the Audio Input Control Service gain settings.
int bt_mics_aics_description_get(struct bt_mics *mics, struct bt_aics *inst)
Read the Audio Input Control Service description.
int bt_mics_aics_deactivate(struct bt_mics *mics, struct bt_aics *inst)
Deactivates a Audio Input Control Service instance.
int bt_mics_included_get(struct bt_mics *mics, struct bt_mics_included *included)
Get Microphone Input Control Service included services.
int bt_mics_aics_manual_gain_set(struct bt_mics *mics, struct bt_aics *inst)
Set Audio Input Control Service gain mode to manual.
#define BT_MICS_AICS_CNT
Definition: mics.h:32
int bt_mics_mute(struct bt_mics *mics)
Mute the server.
int bt_mics_aics_status_get(struct bt_mics *mics, struct bt_aics *inst)
Read the Audio Input Control Service input status.
int bt_mics_unmute(struct bt_mics *mics)
Unmute the server.
int bt_mics_aics_automatic_gain_set(struct bt_mics *mics, struct bt_aics *inst)
Set Audio Input Control Service gain mode to automatic.
int bt_mics_aics_mute(struct bt_mics *mics, struct bt_aics *inst)
Mute the Audio Input Control Service input.
int bt_mics_discover(struct bt_conn *conn, struct bt_mics **mics)
Discover Microphone Input Control Service.
int bt_mics_aics_description_set(struct bt_mics *mics, struct bt_aics *inst, const char *description)
Set the Audio Input Control Service description.
int bt_mics_client_cb_register(struct bt_mics_cb *cb)
Registers the callbacks used by Microphone Input Control Service client.
int bt_mics_aics_gain_set(struct bt_mics *mics, struct bt_aics *inst, int8_t gain)
Set Audio Input Control Service input gain.
int bt_mics_aics_type_get(struct bt_mics *mics, struct bt_aics *inst)
Read the Audio Input Control Service input type.
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__INT8_TYPE__ int8_t
Definition: stdint.h:42
Definition: aics.h:255
bt_aics_description_cb description
Definition: aics.h:260
Structure for initializing a Audio Input Control Service instance.
Definition: aics.h:67
Definition: mics.h:148
bt_mics_mute_read_cb mute
Definition: mics.h:149
Microphone Input Control Service included services.
Definition: mics.h:63
uint8_t aics_cnt
Definition: mics.h:65
struct bt_aics ** aics
Definition: mics.h:67
Register parameters structure for Microphone Input Control Service.
Definition: mics.h:48
struct bt_mics_cb * cb
Definition: mics.h:53
struct bt_aics_register_param aics_param[0]
Definition: mics.h:50