All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH BlueZ v2 0/2] Update BAP Broadcast Source state machine
@ 2024-05-23 15:47 Silviu Florian Barbulescu
  2024-05-23 15:47 ` [PATCH BlueZ v2 1/2] shared/bap: " Silviu Florian Barbulescu
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Silviu Florian Barbulescu @ 2024-05-23 15:47 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: mihai-octavian.urzica, silviu.barbulescu, vlad.pruteanu,
	andrei.istodorescu, luiz.dentz, iulia.tanasescu

Update BAP Broadcast Source state machine states to use BAP define states
 for source Idle, Config, Streaming, and an intermediary state enabling.

Updated test-bap to.

output from broadcast-source.bt

[bluetooth]# endpoint.register 00001852-0000-1000-8000-00805f9b34fb 0x06
[bluetooth]#   1;39m[/local/endpoint/ep0] Auto Accept (yes/no): y
a/local/endpoint/ep0] Auto Accept (yes/no):  Max Transports (auto/value
3/local/endpoint/ep0] Max Transports (auto/value): Locations
4/local/endpoint/ep0] Locations: Supported Context (value)
[/local/endpoint/ep0] Supported Context (value): Capabilities:
[bluetooth]#   03 01 ff 00 02 02 03 02 03 03 05 04 1a 00 f0 00  
[bluetooth]# Metadata:
[bluetooth]# Capabilities:
[bluetooth]#   03 01 ff 00 02 02 03 02 03 03 05 04 1a 00 f0 00
[bluetooth]# Metadata:
[bluetooth]# [CHG] Controller C0:07:E8:8B:69:F2 Pairable: yes
[bluetooth]# [CHG] Controller 00:AA:01:00:00:03 Pairable: yes
[bluetooth]# [NEW] Endpoint /org/bluez/hci3/pac_bcast0 
[bluetooth]# Endpoint /local/endpoint/ep0 registered
endpoint.config /org/bluez/hci3/pac_bcast0 /local/endpoint/ep0 16_2_1
[bluetooth]#   1;39m[/local/endpoint/ep0] BIG (auto/value): 1
3/local/endpoint/ep0] BIG (auto/value): Enter channel location (value/no
0x03 0x02 0x04 0x000] Enter channel location (value/no): Metadata
[/local/endpoint/ep0] Enter Metadata (value/no): 
		Configuration.#0: len 0x02 type 0x01
[bluetooth]# 	Configuration.Sampling Frequency: 16 Khz (0x03)
[bluetooth]# 	Configuration.#1: len 0x02 type 0x02
[bluetooth]# 	Configuration.Frame Duration: 10 ms (0x01)
[bluetooth]# 	Configuration.#2: len 0x03 type 0x04
[bluetooth]# 	Configuration.Frame Length: 40 (0x0028)
[bluetooth]# 	Configuration.#3: len 0x05 type 0x03
[bluetooth]# 	Configuration.Location: 0x00000003
[bluetooth]# 	Configuration.Location: Front Left (0x00000001)
[bluetooth]# 	Configuration.Location: Front Right (0x00000002)
[bluetooth]# 	Metadata.#0: len 0x03 type 0x02
[bluetooth]# 	Metadata.Context: 0x0004
[bluetooth]# 	Metadata.Context	Media (0x0004)
[bluetooth]# BIG 0x01
[bluetooth]# BIS 0x00
[bluetooth]# BCode:
[bluetooth]#   01 02 68 05 53 f1 41 5a a2 65 bb af c6 ea 03 b8
[bluetooth]# Framing 0x00
[bluetooth]# PresentationDelay 40000
[bluetooth]# Interval 10000
[bluetooth]# PHY 0x02
[bluetooth]# SDU 80
[bluetooth]# Retransmissions 2
[bluetooth]# Latency 10
[bluetooth]# [NEW] Endpoint /org/bluez/hci2/pac_bcast0 
[bluetooth]# Endpoint /local/endpoint/ep0 registered
[bluetooth]# transport.acquire /org/bluez/hci3/pac_bcast0/fd0
[bluetooth]# Transport /org/bluez/hci3/pac_bcast0/fd0 not found
[bluetooth]# AdvertisementMonitor path registered
[bluetooth]# [NEW] Transport /org/bluez/hci3/pac_bcast0/fd0 
[bluetooth]# Endpoint: SetConfiguration
[bluetooth]# 	Transport /org/bluez/hci3/pac_bcast0/fd0
[bluetooth]# 	Properties.Device: /org/bluez/hci3
[bluetooth]# Auto Accepting...
[bluetooth]# Endpoint /local/endpoint/ep0 configured

Silviu Florian Barbulescu (2):
  shared/bap: Update BAP Broadcast Source state machine
  bap: Update BAP Broadcast Source state machine states

 profiles/audio/bap.c | 22 +++++++++++++++++-----
 src/shared/bap.c     | 39 ++++++++++++++++++++-------------------
 unit/test-bap.c      |  4 ++--
 3 files changed, 39 insertions(+), 26 deletions(-)


base-commit: 6e51acb0e846a141e3a1ccd0f243b7fe9de7c111
-- 
2.40.1


^ permalink raw reply	[flat|nested] 6+ messages in thread
* [PATCH BlueZ 1/2] shared/bap: Update BAP Broadcast Source state machine
@ 2024-05-20 16:27 Silviu Florian Barbulescu
  2024-05-20 18:31 ` bluez.test.bot
  0 siblings, 1 reply; 6+ messages in thread
From: Silviu Florian Barbulescu @ 2024-05-20 16:27 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: mihai-octavian.urzica, silviu.barbulescu, vlad.pruteanu,
	andrei.istodorescu, luiz.dentz, iulia.tanasescu

Update BAP Broadcast Source state machine states to use BAP define states
 for source Idle, Config, Streaming, and an intermediary state enabling.

Updated test-bap too.

---
 src/shared/bap.c | 39 ++++++++++++++++++++-------------------
 unit/test-bap.c  |  4 ++--
 2 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/src/shared/bap.c b/src/shared/bap.c
index 6572ef1d1..639149520 100644
--- a/src/shared/bap.c
+++ b/src/shared/bap.c
@@ -1361,14 +1361,6 @@ static void ep_config_cb(struct bt_bap_stream *stream, int err)
 	if (err)
 		return;
 
-	if (bt_bap_stream_get_type(stream) == BT_BAP_STREAM_TYPE_BCAST) {
-		if (bt_bap_stream_io_dir(stream) == BT_BAP_BCAST_SINK)
-			stream_set_state(stream, BT_BAP_STREAM_STATE_QOS);
-		else if (bt_bap_stream_io_dir(stream) == BT_BAP_BCAST_SOURCE)
-			stream_set_state(stream, BT_BAP_STREAM_STATE_CONFIG);
-		return;
-	}
-
 	stream_set_state(stream, BT_BAP_STREAM_STATE_CONFIG);
 }
 
@@ -1759,6 +1751,15 @@ static unsigned int bap_stream_metadata(struct bt_bap_stream *stream,
 	return req->id;
 }
 
+static unsigned int bap_bcast_qos(struct bt_bap_stream *stream,
+					struct bt_bap_qos *data,
+					bt_bap_stream_func_t func,
+					void *user_data)
+{
+	stream->qos = *data;
+	return 1;
+}
+
 static unsigned int bap_bcast_config(struct bt_bap_stream *stream,
 				     struct bt_bap_qos *qos, struct iovec *data,
 				     bt_bap_stream_func_t func, void *user_data)
@@ -2071,7 +2072,7 @@ static unsigned int bap_bcast_get_state(struct bt_bap_stream *stream)
 	return stream->state;
 }
 
-static unsigned int bap_bcast_enable(struct bt_bap_stream *stream,
+static unsigned int bap_bcast_sink_enable(struct bt_bap_stream *stream,
 					bool enable_links, struct iovec *data,
 					bt_bap_stream_func_t func,
 					void *user_data)
@@ -2081,22 +2082,21 @@ static unsigned int bap_bcast_enable(struct bt_bap_stream *stream,
 	return 1;
 }
 
-static unsigned int bap_bcast_start(struct bt_bap_stream *stream,
+static unsigned int bap_bcast_src_enable(struct bt_bap_stream *stream,
+					bool enable_links, struct iovec *data,
 					bt_bap_stream_func_t func,
 					void *user_data)
 {
-	stream_set_state(stream, BT_BAP_STREAM_STATE_STREAMING);
+	stream_set_state(stream, BT_BAP_STREAM_STATE_ENABLING);
 
 	return 1;
 }
 
-static unsigned int bap_bcast_sink_disable(struct bt_bap_stream *stream,
-					bool disable_links,
+static unsigned int bap_bcast_start(struct bt_bap_stream *stream,
 					bt_bap_stream_func_t func,
 					void *user_data)
 {
-	bap_stream_io_detach(stream);
-	stream_set_state(stream, BT_BAP_STREAM_STATE_CONFIG);
+	stream_set_state(stream, BT_BAP_STREAM_STATE_STREAMING);
 
 	return 1;
 }
@@ -2106,7 +2106,8 @@ static unsigned int bap_bcast_disable(struct bt_bap_stream *stream,
 					bt_bap_stream_func_t func,
 					void *user_data)
 {
-	stream_set_state(stream, BT_BAP_STREAM_STATE_DISABLING);
+	bap_stream_io_detach(stream);
+	stream_set_state(stream, BT_BAP_STREAM_STATE_CONFIG);
 
 	return 1;
 }
@@ -2205,14 +2206,14 @@ static const struct bt_bap_stream_ops stream_ops[] = {
 			bap_ucast_release, bap_ucast_detach),
 	STREAM_OPS(BT_BAP_BCAST_SINK, bap_bcast_set_state,
 			bap_bcast_get_state,
-			bap_bcast_config, NULL, bap_bcast_enable,
-			bap_bcast_start, bap_bcast_sink_disable, NULL,
+			bap_bcast_config, NULL, bap_bcast_sink_enable,
+			bap_bcast_start, bap_bcast_disable, NULL,
 			bap_bcast_metadata, bap_bcast_sink_get_dir,
 			bap_bcast_get_location,
 			bap_bcast_release, bap_bcast_sink_detach),
 	STREAM_OPS(BT_BAP_BCAST_SOURCE, bap_bcast_set_state,
 			bap_bcast_get_state,
-			bap_bcast_config, NULL, bap_bcast_enable,
+			bap_bcast_config, bap_bcast_qos, bap_bcast_src_enable,
 			bap_bcast_start, bap_bcast_disable, NULL,
 			bap_bcast_metadata, bap_bcast_src_get_dir,
 			bap_bcast_get_location,
diff --git a/unit/test-bap.c b/unit/test-bap.c
index 46ee0e4e5..10f9e348c 100644
--- a/unit/test-bap.c
+++ b/unit/test-bap.c
@@ -547,10 +547,10 @@ static void bsrc_state(struct bt_bap_stream *stream, uint8_t old_state,
 	struct test_data *data = user_data;
 
 	switch (new_state) {
-	case BT_BAP_STREAM_STATE_QOS:
+	case BT_BAP_STREAM_STATE_CONFIG:
 		bt_bap_stream_enable(stream, true, NULL, NULL, NULL);
 		break;
-	case BT_BAP_STREAM_STATE_CONFIG:
+	case BT_BAP_STREAM_STATE_ENABLING:
 		data->base = bt_bap_stream_get_base(stream);
 
 		g_assert(data->base);
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-05-23 18:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-23 15:47 [PATCH BlueZ v2 0/2] Update BAP Broadcast Source state machine Silviu Florian Barbulescu
2024-05-23 15:47 ` [PATCH BlueZ v2 1/2] shared/bap: " Silviu Florian Barbulescu
2024-05-23 18:13   ` bluez.test.bot
2024-05-23 15:47 ` [PATCH BlueZ v2 2/2] bap: Update BAP Broadcast Source state machine states Silviu Florian Barbulescu
2024-05-23 16:40 ` [PATCH BlueZ v2 0/2] Update BAP Broadcast Source state machine patchwork-bot+bluetooth
  -- strict thread matches above, loose matches on Subject: below --
2024-05-20 16:27 [PATCH BlueZ 1/2] shared/bap: " Silviu Florian Barbulescu
2024-05-20 18:31 ` bluez.test.bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.