[PATCH BlueZ 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.

---
 src/btd.h     |  6 ++++++
 src/main.c    | 15 +++++++++++++++
 src/main.conf |  5 +++++
 3 files changed, 26 insertions(+)

diff --git a/src/btd.h b/src/btd.h
index 07205aa69..c2b6a456e 100644
--- a/src/btd.h
+++ b/src/btd.h
@@ -109,6 +109,10 @@ struct btd_avrcp_opts {
 	bool		volume_category;
 };
 
+struct btd_a2dp_opts {
+	uint8_t  channels;
+};
+
 struct btd_advmon_opts {
 	uint8_t		rssi_sampling_period;
 };
@@ -152,6 +156,8 @@ struct btd_opts {
 	struct btd_avdtp_opts avdtp;
 	struct btd_avrcp_opts avrcp;
 
+	struct btd_a2dp_opts a2dp;
+
 	uint8_t		key_size;
 
 	enum jw_repairing_t jw_repairing;
diff --git a/src/main.c b/src/main.c
index 41c3271a7..2c583e611 100644
--- a/src/main.c
+++ b/src/main.c
@@ -168,6 +168,10 @@ static const char *avdtp_options[] = {
 static const char *avrcp_options[] = {
 	"VolumeWithoutTarget",
 	"VolumeCategory",
+};
+
+static const char *a2dp_options[] = {
+	"Channels",
 	NULL
 };
 
@@ -188,6 +192,7 @@ static const struct group_table {
 	{ "CSIS",	csip_options },
 	{ "AVDTP",	avdtp_options },
 	{ "AVRCP",	avrcp_options },
+	{ "A2DP",	a2dp_options },
 	{ "AdvMon",	advmon_options },
 	{ }
 };
@@ -1157,6 +1162,13 @@ static void parse_avrcp(GKeyFile *config)
 		&btd_opts.avrcp.volume_category);
 }
 
+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",
@@ -1181,6 +1193,7 @@ static void parse_config(GKeyFile *config)
 	parse_csis(config);
 	parse_avdtp(config);
 	parse_avrcp(config);
+	parse_a2dp(config);
 	parse_advmon(config);
 }
 
@@ -1226,6 +1239,8 @@ static void init_defaults(void)
 	btd_opts.avrcp.volume_without_target = false;
 	btd_opts.avrcp.volume_category = true;
 
+	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 fff13ed2f..323a2fbbe 100644
--- a/src/main.conf
+++ b/src/main.conf
@@ -316,6 +316,11 @@
 # notifications.
 #VolumeCategory = true
 
+[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-146)





[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