summaryrefslogtreecommitdiff
path: root/tools/3dsp.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2015-01-26 01:49:37 +0100
committerMarcel Holtmann <marcel@holtmann.org>2015-01-26 01:49:37 +0100
commit333fb02e6889ec13a3aa32cc3775f9c378955594 (patch)
tree25b7af1c07996e86a78541dc72f1f4b081ba52db /tools/3dsp.c
parentfe29cf0f5aa2e868a8670b0bd618368f23e3fa8c (diff)
downloadbluez-333fb02e6889ec13a3aa32cc3775f9c378955594.tar.gz
tools: Read local clock value when receiving new CSB data
Diffstat (limited to 'tools/3dsp.c')
-rw-r--r--tools/3dsp.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/tools/3dsp.c b/tools/3dsp.c
index 496928725..78ca7dc76 100644
--- a/tools/3dsp.c
+++ b/tools/3dsp.c
@@ -125,7 +125,7 @@ static void start_inquiry(void)
inquiry_started, NULL, NULL);
}
-static void slave_broadcast_receive(const void *data, uint8_t size,
+static void set_slave_broadcast_receive(const void *data, uint8_t size,
void *user_data)
{
printf("Slave broadcast receiption enabled\n");
@@ -156,8 +156,8 @@ static void sync_train_received(const void *data, uint8_t size,
memcpy(cmd.map, evt->map, 10);
bt_hci_send(hci_dev, BT_HCI_CMD_SET_SLAVE_BROADCAST_RECEIVE,
- &cmd, sizeof(cmd),
- slave_broadcast_receive, NULL, NULL);
+ &cmd, sizeof(cmd),
+ set_slave_broadcast_receive, NULL, NULL);
}
static void brcm_sync_train_received(const void *data, uint8_t size,
@@ -185,8 +185,8 @@ static void brcm_sync_train_received(const void *data, uint8_t size,
memcpy(cmd.map, evt->map, 10);
bt_hci_send(hci_dev, BT_HCI_CMD_SET_SLAVE_BROADCAST_RECEIVE,
- &cmd, sizeof(cmd),
- slave_broadcast_receive, NULL, NULL);
+ &cmd, sizeof(cmd),
+ set_slave_broadcast_receive, NULL, NULL);
}
static void truncated_page_complete(const void *data, uint8_t size,
@@ -229,6 +229,18 @@ static void slave_broadcast_timeout(const void *data, uint8_t size,
NULL, NULL, NULL);
}
+static void slave_broadcast_receive(const void *data, uint8_t size,
+ void *user_data)
+{
+ struct bt_hci_cmd_read_clock cmd;
+
+ cmd.handle = cpu_to_le16(0x0000);
+ cmd.type = 0x00;
+
+ bt_hci_send(hci_dev, BT_HCI_CMD_READ_CLOCK, &cmd, sizeof(cmd),
+ NULL, NULL, NULL);
+}
+
static void ext_inquiry_result(const void *data, uint8_t size, void *user_data)
{
const struct bt_hci_evt_ext_inquiry_result *evt = data;
@@ -312,6 +324,8 @@ static void start_glasses(void)
truncated_page_complete, NULL, NULL);
bt_hci_register(hci_dev, BT_HCI_EVT_SLAVE_BROADCAST_TIMEOUT,
slave_broadcast_timeout, NULL, NULL);
+ bt_hci_register(hci_dev, BT_HCI_EVT_SLAVE_BROADCAST_RECEIVE,
+ slave_broadcast_receive, NULL, NULL);
start_inquiry();
}