# Bluetooth Audio - Audio Stream Control configuration options
#
# Copyright (c) 2020 Intel Corporation
# Copyright (c) 2022 Nordic Semiconductor ASA

# SPDX-License-Identifier: Apache-2.0
#

config BT_ASCS
	bool "Audio Stream Control Service Support"
	help
	  This option enables support for Audio Stream Control Service.

if BT_ASCS
config BT_ASCS_ASE_SNK_COUNT
	int "Number of Audio Stream Endpoint Sink Characteristics"
	default 2
	range 0 2
	help
	  An ASE Sink characteristic represents the state of an ASE, which is
	  coupled to a single direction of a unicast Audio Stream.

config BT_ASCS_ASE_SRC_COUNT
	int "Number of Audio Stream Endpoint Source Characteristics"
	default 2
	range 0 2
	help
	  An ASE Source characteristic represents the state of an ASE, which is
	  coupled to a single direction of a unicast Audio Stream.

config BT_ASCS_ASE_SNK
	def_bool BT_ASCS_ASE_SNK_COUNT > 0
	select BT_PAC_SNK

config BT_ASCS_ASE_SRC
	def_bool BT_ASCS_ASE_SRC_COUNT > 0
	select BT_PAC_SRC
endif # BT_ASCS
