[PATCHv4 07/13] android/tester: Make A2DP use generic pdu exchange mechanism

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

 



---
 android/tester-a2dp.c | 51 +++++++++------------------------------------------
 1 file changed, 9 insertions(+), 42 deletions(-)

diff --git a/android/tester-a2dp.c b/android/tester-a2dp.c
index 1ff628e..dcb7f79 100644
--- a/android/tester-a2dp.c
+++ b/android/tester-a2dp.c
@@ -25,13 +25,6 @@
 
 static struct queue *list;
 
-struct emu_cid_data {
-	uint16_t handle;
-	uint16_t cid;
-};
-
-static struct emu_cid_data cid_data;
-
 #define req_dsc 0x00, 0x01
 #define rsp_dsc 0x02, 0x01, 0x04, 0x08
 #define req_get 0x10, 0x02, 0x04
@@ -61,54 +54,28 @@ static const struct pdu_set pdus[] = {
 	{ end_pdu, end_pdu },
 };
 
-static void print_data(const char *str, void *user_data)
-{
-	tester_debug("a2dp: %s", str);
-}
-
-static void a2dp_cid_hook_cb(const void *data, uint16_t len, void *user_data)
-{
-	struct emu_cid_data *cid_data = user_data;
-	struct test_data *t_data = tester_get_data();
-	struct bthost *bthost = hciemu_client_get_host(t_data->hciemu);
-	int i;
-
-	util_hexdump('>', data, len, print_data, NULL);
-
-	for (i = 0; pdus[i].req.iov_base; i++) {
-		if (pdus[i].req.iov_len != len)
-			continue;
-
-		if (memcmp(pdus[i].req.iov_base, data, len))
-			continue;
-
-		util_hexdump('<', pdus[i].rsp.iov_base, pdus[i].rsp.iov_len,
-							print_data, NULL);
-
-		bthost_send_cid_v(bthost, cid_data->handle, cid_data->cid,
-							&pdus[i].rsp, 1);
-	}
-}
+static struct emu_l2cap_cid_data cid_data = {
+	.pdu = pdus,
+};
 
 static void a2dp_connect_request_cb(uint16_t handle, uint16_t cid,
 							void *user_data)
 {
-	struct test_data *data = tester_get_data();
-	struct bthost *bthost = hciemu_client_get_host(data->hciemu);
+	struct emu_l2cap_cid_data *cid_data = user_data;
 
-	if (cid_data.handle)
+	if (cid_data->handle)
 		return;
 
-	cid_data.handle = handle;
-	cid_data.cid = cid;
+	cid_data->handle = handle;
+	cid_data->cid = cid;
 
-	bthost_add_cid_hook(bthost, handle, cid, a2dp_cid_hook_cb, &cid_data);
+	tester_handle_l2cap_data_exchange(cid_data);
 }
 
 static struct emu_set_l2cap_data l2cap_setup_data = {
 	.psm = 25,
 	.func = a2dp_connect_request_cb,
-	.user_data = NULL,
+	.user_data = &cid_data,
 };
 
 static void a2dp_connect_action(void)
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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