[PATCH BlueZ v1 1/2] main.conf: Introduce option to limit A2DP channels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This introduces Channels which can be used to
limit the number of A2DP channels.

For new option this also adds a new group A2DP to config.

Signed-off-by: Victor Pushkarev <VAnPushkarev@xxxxxxxxxxxxxxxxx>
---
 src/btd.h     |  6 ++++++
 src/main.c    | 16 ++++++++++++++++
 src/main.conf |  5 +++++
 3 files changed, 27 insertions(+)

diff --git a/src/btd.h b/src/btd.h
index b7e7ebd61..3372bd7f5 100644
--- a/src/btd.h
+++ b/src/btd.h
@@ -104,6 +104,10 @@ struct btd_avdtp_opts {
 	uint8_t  stream_mode;
 };
 
+struct btd_a2dp_opts {
+	uint8_t		channels;
+};
+
 struct btd_advmon_opts {
 	uint8_t		rssi_sampling_period;
 };
@@ -148,6 +152,8 @@ struct btd_opts {
 
 	enum jw_repairing_t jw_repairing;
 
+	struct btd_a2dp_opts	a2dp;
+
 	struct btd_advmon_opts	advmon;
 
 	struct btd_csis csis;
diff --git a/src/main.c b/src/main.c
index b1339c230..7e74b9728 100644
--- a/src/main.c
+++ b/src/main.c
@@ -162,6 +162,11 @@ static const char *avdtp_options[] = {
 	NULL
 };
 
+static const char *a2dp_options[] = {
+	"Channels",
+	NULL
+};
+
 static const char *advmon_options[] = {
 	"RSSISamplingPeriod",
 	NULL
@@ -178,6 +183,7 @@ static const struct group_table {
 	{ "GATT",	gatt_options },
 	{ "CSIS",	csip_options },
 	{ "AVDTP",	avdtp_options },
+	{ "A2DP",	a2dp_options },
 	{ "AdvMon",	advmon_options },
 	{ }
 };
@@ -1130,6 +1136,13 @@ static void parse_avdtp(GKeyFile *config)
 	parse_avdtp_stream_mode(config);
 }
 
+static void parse_a2dp(GKeyFile *config)
+{
+	parse_config_u8(config, "A2DP", "Channels",
+				&btd_opts.a2dp.channels,
+				0, UINT8_MAX);
+}
+
 static void parse_advmon(GKeyFile *config)
 {
 	parse_config_u8(config, "AdvMon", "RSSISamplingPeriod",
@@ -1153,6 +1166,7 @@ static void parse_config(GKeyFile *config)
 	parse_gatt(config);
 	parse_csis(config);
 	parse_avdtp(config);
+	parse_a2dp(config);
 	parse_advmon(config);
 }
 
@@ -1194,6 +1208,8 @@ static void init_defaults(void)
 	btd_opts.avdtp.session_mode = BT_IO_MODE_BASIC;
 	btd_opts.avdtp.stream_mode = BT_IO_MODE_BASIC;
 
+	btd_opts.a2dp.channels = 0;
+
 	btd_opts.advmon.rssi_sampling_period = 0xFF;
 	btd_opts.csis.encrypt = true;
 }
diff --git a/src/main.conf b/src/main.conf
index 085c81a46..caeb82504 100644
--- a/src/main.conf
+++ b/src/main.conf
@@ -296,6 +296,11 @@
 # streaming: Use L2CAP Streaming Mode
 #StreamMode = basic
 
+[A2DP]
+# Maximum number of A2DP channels
+# Defaults to 0 (unlimited)
+#Channels = 0
+
 [Policy]
 #
 # The ReconnectUUIDs defines the set of remote services that should try
-- 
2.39.3 (Apple Git-145)





[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux