Bluetooth: Audio: Microphone Input Control Service and Client

This commit implements the microphone input  control service
(MICS) and client, The implementation supports and uses the
Audio Input Control Service (AICS) secondary service.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
Emil Gydesen 2021-05-03 17:28:01 +02:00 committed by Carles Cufí
commit 2c67bafb7b
9 changed files with 1540 additions and 2 deletions

View file

@ -0,0 +1,84 @@
# Bluetooth Audio - Microphone Input Control Service options
#
# Copyright (c) 2020 Bose Corporation
# Copyright (c) 2020-2021 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
#
if BT_AUDIO
##################### Microphone Input Control Service #####################
config BT_MICS
bool "Microphone Input Control Service Support"
default n
help
This option enables support for Microphone Input Control Service.
if BT_MICS
config BT_MICS_AICS_INSTANCE_COUNT
int "Audio Input Control Service instance count for Microphone Input Control Service"
default 0
range 0 BT_AICS_MAX_INSTANCE_COUNT
help
This option sets the number of instances of Audio Input Control
Services for MICS.
config BT_MICS_AICS
bool # Hidden
default y if BT_MICS_AICS_INSTANCE_COUNT > 0
help
This hidden option makes it possible to easily check if AICS is
enabled for MICS.
############# DEBUG #############
config BT_DEBUG_MICS
bool "Microphone Input Control Service debug"
depends on BT_AUDIO_DEBUG
help
Use this option to enable Microphone Input Control Service debug logs
for the Bluetooth Audio functionality.
endif # BT_MICS
##################### Microphone Control Profile Client #####################
config BT_MICS_CLIENT
bool "Microphone Control Profile Support"
select BT_GATT_CLIENT
select BT_GATT_AUTO_DISCOVER_CCC
help
This option enables support for Microphone Control Profile.
if BT_MICS_CLIENT
config BT_MICS_CLIENT_MAX_AICS_INST
int "Maximum number of Audio Input Control Service instances to setup"
default 0
range 0 3
help
Sets the maximum number of Audio Input Control Service (AICS)
instances to setup and use.
config BT_MICS_CLIENT_AICS
bool # Hidden
default y if BT_MICS_CLIENT_MAX_AICS_INST > 0
help
This hidden option makes it possible to easily check if AICS is
enabled for MICS client.
############# DEBUG #############
config BT_DEBUG_MICS_CLIENT
bool "Microphone Control Profile debug"
depends on BT_AUDIO_DEBUG
help
Use this option to enable Microphone Control Profile debug logs for
the Bluetooth Audio functionality.
endif # BT_MICS_CLIENT
endif # BT_AUDIO