# Bluetooth Audio configuration options

#
# Copyright (c) 2020 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig BT_AUDIO
	bool "Bluetooth Audio support [Experimental]"
	help
	  This option enables Bluetooth Audio support. The specific
	  features that are available may depend on other features
	  that have been enabled in the stack, such as Periodic
	  Advertisement for Broadcast and L2CAP Dynamic Channel
	  for Unicast.

if BT_AUDIO

if BT_CONN

config BT_AUDIO_UNICAST
	bool "Bluetooth Unicast Audio Support"
	select BT_SMP
	select BT_L2CAP_DYNAMIC_CHANNEL
	select BT_ISO_UNICAST
	select BT_GATT_DYNAMIC_DB
	select BT_GATT_CACHING
	select BT_L2CAP_ECRED
	select BT_EATT
	help
	  This option enables support for Bluetooth Unicast Audio using
	  Isochronous channels.

# TODO: Make BT_AUDIO_BROADCAST not depend on BT_CONN
config BT_AUDIO_BROADCAST
	bool "Bluetooth Broadcast Audio Support"
	select BT_ISO_BROADCAST
	help
	  This option enables support for Bluetooth Broadcast Audio using
	  Isochronous channels.

endif # BT_CONN

config BT_AUDIO_DEBUG
	bool "Enable debug logs"
	depends on BT_DEBUG
	help
	  Use this option to enable debug logs for the Bluetooth
	  Audio functionality.

source "subsys/bluetooth/audio/Kconfig.vocs"
source "subsys/bluetooth/audio/Kconfig.aics"
source "subsys/bluetooth/audio/Kconfig.vcs"
source "subsys/bluetooth/audio/Kconfig.mics"

endif # BT_AUDIO
