mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-15 22:20:59 +00:00
gatt-client/bass_client: update events and internal function names
This commit is contained in:
parent
16b5de7989
commit
97c78dc616
@ -53,12 +53,12 @@
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
static btstack_linked_list_t bass_connections;
|
||||
static btstack_linked_list_t bass_client_connections;
|
||||
|
||||
static uint16_t bass_client_cid_counter = 0;
|
||||
static btstack_packet_handler_t bass_event_callback;
|
||||
static btstack_packet_handler_t bass_client_event_callback;
|
||||
|
||||
static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||
static void bass_client_handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size);
|
||||
|
||||
static uint16_t bass_client_get_next_cid(void){
|
||||
bass_client_cid_counter = btstack_next_cid_ignoring_zero(bass_client_cid_counter);
|
||||
@ -66,12 +66,12 @@ static uint16_t bass_client_get_next_cid(void){
|
||||
}
|
||||
|
||||
static void bass_client_finalize_connection(bass_client_connection_t * connection){
|
||||
btstack_linked_list_remove(&bass_connections, (btstack_linked_item_t*) connection);
|
||||
btstack_linked_list_remove(&bass_client_connections, (btstack_linked_item_t*) connection);
|
||||
}
|
||||
|
||||
static bass_client_connection_t * bass_client_get_connection_for_con_handle(hci_con_handle_t con_handle){
|
||||
btstack_linked_list_iterator_t it;
|
||||
btstack_linked_list_iterator_init(&it, (btstack_linked_list_t *) &bass_connections);
|
||||
btstack_linked_list_iterator_init(&it, (btstack_linked_list_t *) &bass_client_connections);
|
||||
while (btstack_linked_list_iterator_has_next(&it)){
|
||||
bass_client_connection_t * connection = (bass_client_connection_t *)btstack_linked_list_iterator_next(&it);
|
||||
if (connection->con_handle != con_handle) continue;
|
||||
@ -80,9 +80,9 @@ static bass_client_connection_t * bass_client_get_connection_for_con_handle(hci_
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static bass_client_connection_t * bass_get_client_for_cid(uint16_t bass_cid){
|
||||
static bass_client_connection_t * bass_client_get_connection_for_cid(uint16_t bass_cid){
|
||||
btstack_linked_list_iterator_t it;
|
||||
btstack_linked_list_iterator_init(&it, (btstack_linked_list_t *) &bass_connections);
|
||||
btstack_linked_list_iterator_init(&it, (btstack_linked_list_t *) &bass_client_connections);
|
||||
while (btstack_linked_list_iterator_has_next(&it)){
|
||||
bass_client_connection_t * connection = (bass_client_connection_t *)btstack_linked_list_iterator_next(&it);
|
||||
if (connection->cid != bass_cid) continue;
|
||||
@ -91,7 +91,7 @@ static bass_client_connection_t * bass_get_client_for_cid(uint16_t bass_cid){
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static bass_client_source_t * bass_get_receive_state_for_value_handle(bass_client_connection_t * connection, uint16_t value_handle){
|
||||
static bass_client_source_t * bass_client_get_receive_state_for_value_handle(bass_client_connection_t * connection, uint16_t value_handle){
|
||||
uint8_t i;
|
||||
for (i = 0; i < connection->receive_states_instances_num; i++){
|
||||
if (connection->receive_states[i].receive_state_value_handle == value_handle){
|
||||
@ -101,7 +101,7 @@ static bass_client_source_t * bass_get_receive_state_for_value_handle(bass_clien
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static bass_client_source_t * bass_get_source_for_source_id(bass_client_connection_t * connection, uint8_t source_id){
|
||||
static bass_client_source_t * bass_client_get_source_for_source_id(bass_client_connection_t * connection, uint8_t source_id){
|
||||
uint8_t i;
|
||||
for (i = 0; i < connection->receive_states_instances_num; i++){
|
||||
if (connection->receive_states[i].source_id == source_id){
|
||||
@ -121,61 +121,61 @@ static void bass_client_reset_source(bass_client_source_t * source){
|
||||
}
|
||||
|
||||
static void bass_client_emit_connection_established(bass_client_connection_t * connection, uint8_t status){
|
||||
btstack_assert(bass_event_callback != NULL);
|
||||
btstack_assert(bass_client_event_callback != NULL);
|
||||
|
||||
uint8_t event[8];
|
||||
uint16_t pos = 0;
|
||||
event[pos++] = HCI_EVENT_GATTSERVICE_META;
|
||||
event[pos++] = sizeof(event) - 2;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_CONNECTED;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_CLIENT_CONNECTED;
|
||||
little_endian_store_16(event, pos, connection->con_handle);
|
||||
pos += 2;
|
||||
little_endian_store_16(event, pos, connection->cid);
|
||||
pos += 2;
|
||||
event[pos++] = status;
|
||||
(*bass_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
(*bass_client_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
}
|
||||
|
||||
static void bass_client_emit_scan_operation_complete(bass_client_connection_t * connection, uint8_t status, bass_opcode_t opcode){
|
||||
btstack_assert(bass_event_callback != NULL);
|
||||
btstack_assert(bass_client_event_callback != NULL);
|
||||
uint8_t event[7];
|
||||
uint16_t pos = 0;
|
||||
event[pos++] = HCI_EVENT_GATTSERVICE_META;
|
||||
event[pos++] = sizeof(event) - 2;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_SCAN_OPERATION_COMPLETE;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_CLIENT_SCAN_OPERATION_COMPLETE;
|
||||
little_endian_store_16(event, pos, connection->cid);
|
||||
pos += 2;
|
||||
event[pos++] = status;
|
||||
event[pos++] = (uint8_t)opcode;
|
||||
(*bass_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
(*bass_client_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
}
|
||||
|
||||
static void bass_client_emit_source_operation_complete(bass_client_connection_t * connection, uint8_t status, bass_opcode_t opcode, uint8_t source_id){
|
||||
btstack_assert(bass_event_callback != NULL);
|
||||
btstack_assert(bass_client_event_callback != NULL);
|
||||
uint8_t event[8];
|
||||
uint16_t pos = 0;
|
||||
event[pos++] = HCI_EVENT_GATTSERVICE_META;
|
||||
event[pos++] = sizeof(event) - 2;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_SOURCE_OPERATION_COMPLETE;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE;
|
||||
little_endian_store_16(event, pos, connection->cid);
|
||||
pos += 2;
|
||||
event[pos++] = status;
|
||||
event[pos++] = (uint8_t)opcode;
|
||||
event[pos++] = source_id;
|
||||
(*bass_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
(*bass_client_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
}
|
||||
|
||||
static void bass_client_emit_receive_state(bass_client_connection_t * connection, uint8_t source_id){
|
||||
btstack_assert(bass_event_callback != NULL);
|
||||
btstack_assert(bass_client_event_callback != NULL);
|
||||
uint8_t pos = 0;
|
||||
uint8_t event[7];
|
||||
event[pos++] = HCI_EVENT_GATTSERVICE_META;
|
||||
event[pos++] = sizeof(event) - 2;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_NOTIFICATION_COMPLETE;
|
||||
event[pos++] = GATTSERVICE_SUBEVENT_BASS_CLIENT_NOTIFICATION_COMPLETE;
|
||||
little_endian_store_16(event, pos, connection->cid);
|
||||
pos += 2;
|
||||
event[pos++] = source_id;
|
||||
(*bass_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
(*bass_client_event_callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||
}
|
||||
|
||||
static bool bass_client_remote_broadcast_receive_state_buffer_valid(uint8_t *buffer, uint16_t buffer_size){
|
||||
@ -249,7 +249,7 @@ static bool bass_client_remote_broadcast_receive_state_buffer_valid(uint8_t *buf
|
||||
return true;
|
||||
}
|
||||
|
||||
static void handle_gatt_server_notification(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
static void bass_client_handle_gatt_server_notification(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
UNUSED(packet_type);
|
||||
UNUSED(channel);
|
||||
UNUSED(size);
|
||||
@ -268,7 +268,7 @@ static void handle_gatt_server_notification(uint8_t packet_type, uint16_t channe
|
||||
uint8_t * value = (uint8_t *)gatt_event_notification_get_value(packet);
|
||||
|
||||
if (bass_client_remote_broadcast_receive_state_buffer_valid(value, value_length)){
|
||||
bass_client_source_t * source = bass_get_receive_state_for_value_handle(connection, value_handle);
|
||||
bass_client_source_t * source = bass_client_get_receive_state_for_value_handle(connection, value_handle);
|
||||
if (source == NULL){
|
||||
return;
|
||||
}
|
||||
@ -299,7 +299,7 @@ static bool bass_client_register_notification(bass_client_connection_t * connect
|
||||
characteristic.end_handle = receive_state->receive_state_end_handle;
|
||||
|
||||
uint8_t status = gatt_client_write_client_characteristic_configuration(
|
||||
&handle_gatt_client_event,
|
||||
&bass_client_handle_gatt_client_event,
|
||||
connection->con_handle,
|
||||
&characteristic,
|
||||
GATT_CLIENT_CHARACTERISTICS_CONFIGURATION_NOTIFICATION);
|
||||
@ -307,8 +307,8 @@ static bool bass_client_register_notification(bass_client_connection_t * connect
|
||||
// notification supported, register for value updates
|
||||
if (status == ERROR_CODE_SUCCESS){
|
||||
gatt_client_listen_for_characteristic_value_updates(
|
||||
&connection->notification_listener,
|
||||
&handle_gatt_server_notification,
|
||||
&connection->notification_listener,
|
||||
&bass_client_handle_gatt_server_notification,
|
||||
connection->con_handle, &characteristic);
|
||||
}
|
||||
return status;
|
||||
@ -429,8 +429,8 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
value[0] = BASS_OPCODE_REMOTE_SCAN_STARTED;
|
||||
// see GATT_EVENT_QUERY_COMPLETE for end of write
|
||||
status = gatt_client_write_value_of_characteristic(
|
||||
&handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 1, &value[0]);
|
||||
&bass_client_handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 1, &value[0]);
|
||||
UNUSED(status);
|
||||
break;
|
||||
|
||||
@ -444,8 +444,8 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
value[0] = BASS_OPCODE_REMOTE_SCAN_STOPPED;
|
||||
// see GATT_EVENT_QUERY_COMPLETE for end of write
|
||||
status = gatt_client_write_value_of_characteristic(
|
||||
&handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 1, &value[0]);
|
||||
&bass_client_handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 1, &value[0]);
|
||||
UNUSED(status);
|
||||
break;
|
||||
|
||||
@ -458,8 +458,8 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
stored_bytes = bass_client_prepare_add_source_buffer(connection);
|
||||
connection->buffer_offset += stored_bytes;
|
||||
|
||||
gatt_client_write_long_value_of_characteristic(&handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, stored_bytes, connection->buffer);
|
||||
gatt_client_write_long_value_of_characteristic(&bass_client_handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, stored_bytes, connection->buffer);
|
||||
break;
|
||||
|
||||
case BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_W2_WRITE_CONTROL_POINT_MODIFY_SOURCE:
|
||||
@ -470,8 +470,8 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
stored_bytes = bass_client_prepare_modify_source_buffer(connection);
|
||||
connection->buffer_offset += stored_bytes;
|
||||
|
||||
gatt_client_write_long_value_of_characteristic(&handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, stored_bytes, connection->buffer);
|
||||
gatt_client_write_long_value_of_characteristic(&bass_client_handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, stored_bytes, connection->buffer);
|
||||
|
||||
break;
|
||||
|
||||
@ -484,8 +484,8 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
value[1] = connection->control_point_operation_source_id;
|
||||
// see GATT_EVENT_QUERY_COMPLETE for end of write
|
||||
status = gatt_client_write_value_of_characteristic(
|
||||
&handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 2, &value[0]);
|
||||
&bass_client_handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 2, &value[0]);
|
||||
UNUSED(status);
|
||||
break;
|
||||
|
||||
@ -500,14 +500,14 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
|
||||
// see GATT_EVENT_QUERY_COMPLETE for end of write
|
||||
status = gatt_client_write_value_of_characteristic(
|
||||
&handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 18, &value[0]);
|
||||
&bass_client_handle_gatt_client_event, connection->con_handle,
|
||||
connection->control_point_value_handle, 18, &value[0]);
|
||||
UNUSED(status);
|
||||
break;
|
||||
|
||||
case BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_STATE_W2_QUERY_SERVICE:
|
||||
connection->state = BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_STATE_W4_SERVICE_RESULT;
|
||||
gatt_client_discover_primary_services_by_uuid16(&handle_gatt_client_event, connection->con_handle, ORG_BLUETOOTH_SERVICE_BROADCAST_AUDIO_SCAN_SERVICE);
|
||||
gatt_client_discover_primary_services_by_uuid16(&bass_client_handle_gatt_client_event, connection->con_handle, ORG_BLUETOOTH_SERVICE_BROADCAST_AUDIO_SCAN_SERVICE);
|
||||
break;
|
||||
|
||||
case BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_STATE_W2_QUERY_CHARACTERISTICS:
|
||||
@ -518,7 +518,7 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
service.uuid16 = ORG_BLUETOOTH_SERVICE_BROADCAST_AUDIO_SCAN_SERVICE;
|
||||
|
||||
gatt_client_discover_characteristics_for_service(
|
||||
&handle_gatt_client_event,
|
||||
&bass_client_handle_gatt_client_event,
|
||||
connection->con_handle,
|
||||
&service);
|
||||
|
||||
@ -533,7 +533,7 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
characteristic.properties = connection->receive_states[connection->receive_states_index].receive_state_properties;
|
||||
characteristic.end_handle = connection->receive_states[connection->receive_states_index].receive_state_end_handle;
|
||||
|
||||
(void) gatt_client_discover_characteristic_descriptors(&handle_gatt_client_event, connection->con_handle, &characteristic);
|
||||
(void) gatt_client_discover_characteristic_descriptors(&bass_client_handle_gatt_client_event, connection->con_handle, &characteristic);
|
||||
break;
|
||||
|
||||
case BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_W2_READ_CHARACTERISTIC_CONFIGURATION:
|
||||
@ -544,7 +544,7 @@ static void bass_client_run_for_connection(bass_client_connection_t * connection
|
||||
|
||||
// result in GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT
|
||||
(void) gatt_client_read_characteristic_descriptor_using_descriptor_handle(
|
||||
&handle_gatt_client_event,
|
||||
&bass_client_handle_gatt_client_event,
|
||||
connection->con_handle,
|
||||
connection->receive_states[connection->receive_states_index].receive_state_ccc_handle);
|
||||
break;
|
||||
@ -650,7 +650,8 @@ static bool bass_client_handle_query_complete(bass_client_connection_t * connect
|
||||
|
||||
case BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_W4_WRITE_CONTROL_POINT_REMOVE_SOURCE:
|
||||
connection->state = BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_STATE_CONNECTED;
|
||||
bass_client_reset_source(bass_get_source_for_source_id(connection, connection->control_point_operation_source_id));
|
||||
bass_client_reset_source(
|
||||
bass_client_get_source_for_source_id(connection, connection->control_point_operation_source_id));
|
||||
bass_client_emit_source_operation_complete(connection, status, BASS_OPCODE_REMOVE_SOURCE, connection->control_point_operation_source_id);
|
||||
break;
|
||||
|
||||
@ -673,7 +674,7 @@ static bool bass_client_handle_query_complete(bass_client_connection_t * connect
|
||||
return true;
|
||||
}
|
||||
|
||||
static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
static void bass_client_handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
|
||||
UNUSED(packet_type);
|
||||
UNUSED(channel);
|
||||
UNUSED(size);
|
||||
@ -803,7 +804,7 @@ static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint
|
||||
|
||||
void broadcast_audio_scan_service_client_init(btstack_packet_handler_t packet_handler){
|
||||
btstack_assert(packet_handler != NULL);
|
||||
bass_event_callback = packet_handler;
|
||||
bass_client_event_callback = packet_handler;
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_connect(bass_client_connection_t * connection,
|
||||
@ -840,14 +841,14 @@ uint8_t broadcast_audio_scan_service_client_connect(bass_client_connection_t * c
|
||||
connection->receive_states_index = 0;
|
||||
|
||||
connection->state = BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_STATE_W2_QUERY_SERVICE;
|
||||
btstack_linked_list_add(&bass_connections, (btstack_linked_item_t *) connection);
|
||||
btstack_linked_list_add(&bass_client_connections, (btstack_linked_item_t *) connection);
|
||||
|
||||
bass_client_run_for_connection(connection);
|
||||
return ERROR_CODE_SUCCESS;
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_scanning_started(uint16_t bass_cid){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
@ -860,7 +861,7 @@ uint8_t broadcast_audio_scan_service_client_scanning_started(uint16_t bass_cid){
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_scanning_stopped(uint16_t bass_cid){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
@ -873,7 +874,7 @@ uint8_t broadcast_audio_scan_service_client_scanning_stopped(uint16_t bass_cid){
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_add_source(uint16_t bass_cid, const bass_source_data_t * add_source_data){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
@ -891,7 +892,7 @@ uint8_t broadcast_audio_scan_service_client_add_source(uint16_t bass_cid, const
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_modify_source(uint16_t bass_cid, uint8_t source_id, const bass_source_data_t * modify_source_data){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
@ -910,7 +911,7 @@ uint8_t broadcast_audio_scan_service_client_modify_source(uint16_t bass_cid, uin
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_remove_source(uint16_t bass_cid, uint8_t source_id){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
@ -926,7 +927,7 @@ uint8_t broadcast_audio_scan_service_client_remove_source(uint16_t bass_cid, uin
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_set_broadcast_code(uint16_t bass_cid, uint8_t source_id, const uint8_t * broadcast_code){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
@ -943,14 +944,14 @@ uint8_t broadcast_audio_scan_service_client_set_broadcast_code(uint16_t bass_cid
|
||||
}
|
||||
|
||||
const bass_source_data_t * broadcast_audio_scan_service_client_get_source_data(uint16_t bass_cid, uint8_t source_id){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return NULL;
|
||||
}
|
||||
if (connection->state != BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_STATE_CONNECTED){
|
||||
return NULL;
|
||||
}
|
||||
return (const bass_source_data_t *) &bass_get_source_for_source_id(connection, source_id)->data;
|
||||
return (const bass_source_data_t *) &bass_client_get_source_for_source_id(connection, source_id)->data;
|
||||
}
|
||||
|
||||
uint8_t broadcast_audio_scan_service_client_get_encryption_state(uint16_t bass_cid, uint8_t source_id,
|
||||
@ -958,14 +959,14 @@ uint8_t broadcast_audio_scan_service_client_get_encryption_state(uint16_t bass_c
|
||||
btstack_assert(out_big_encryption != NULL);
|
||||
btstack_assert(out_bad_code != NULL);
|
||||
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
if (connection->state != BROADCAST_AUDIO_SCAN_SERVICE_CLIENT_STATE_CONNECTED){
|
||||
return ERROR_CODE_COMMAND_DISALLOWED;
|
||||
}
|
||||
bass_client_source_t * source = bass_get_source_for_source_id(connection, source_id);
|
||||
bass_client_source_t * source = bass_client_get_source_for_source_id(connection, source_id);
|
||||
if (source == NULL){
|
||||
return ERROR_CODE_UNKNOWN_CONNECTION_IDENTIFIER;
|
||||
}
|
||||
@ -975,7 +976,8 @@ uint8_t broadcast_audio_scan_service_client_get_encryption_state(uint16_t bass_c
|
||||
}
|
||||
|
||||
void broadcast_audio_scan_service_client_deinit(uint16_t bass_cid){
|
||||
bass_client_connection_t * connection = bass_get_client_for_cid(bass_cid);
|
||||
bass_client_event_callback = NULL;
|
||||
bass_client_connection_t * connection = bass_client_get_connection_for_cid(bass_cid);
|
||||
if (connection == NULL){
|
||||
return;
|
||||
}
|
||||
|
@ -113,7 +113,6 @@ typedef struct {
|
||||
uint16_t receive_state_end_handle;
|
||||
} bass_client_source_t;
|
||||
|
||||
|
||||
typedef struct {
|
||||
btstack_linked_item_t item;
|
||||
|
||||
@ -152,17 +151,18 @@ typedef struct {
|
||||
|
||||
/**
|
||||
* @brief Init Broadcast Audio Scan Service Client. Register packet handler to receive events:
|
||||
* - GATTSERVICE_SUBEVENT_BASS_CONNECTED
|
||||
* - GATTSERVICE_SUBEVENT_BASS_SCAN_OPERATION_COMPLETE
|
||||
* - GATTSERVICE_SUBEVENT_BASS_SOURCE_OPERATION_COMPLETE
|
||||
* - GATTSERVICE_SUBEVENT_BASS_NOTIFICATION_COMPLETE
|
||||
* - GATTSERVICE_SUBEVENT_BASS_CLIENT_CONNECTED
|
||||
* - GATTSERVICE_SUBEVENT_BASS_CLIENT_DISCONNECTED
|
||||
* - GATTSERVICE_SUBEVENT_BASS_CLIENT_SCAN_OPERATION_COMPLETE
|
||||
* - GATTSERVICE_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE
|
||||
* - GATTSERVICE_SUBEVENT_BASS_CLIENT_NOTIFICATION_COMPLETE
|
||||
* @param packet_handler for events
|
||||
*/
|
||||
void broadcast_audio_scan_service_client_init(btstack_packet_handler_t packet_handler);
|
||||
|
||||
/**
|
||||
* @brief Connect to BASS Service on remote device
|
||||
* @note GATTSERVICE_SUBEVENT_BASS_CONNECTED will be emitted
|
||||
* @note GATTSERVICE_SUBEVENT_BASS_CLIENT_CONNECTED will be emitted
|
||||
* @param connection struct provided by user, needs to stay valid until disconnect event is received
|
||||
* @param sources buffer to store information on Broadcast Sources on the service
|
||||
* @param num_sources
|
||||
@ -181,7 +181,7 @@ uint8_t broadcast_audio_scan_service_client_scanning_started(uint16_t bass_cid);
|
||||
|
||||
/**
|
||||
* @brief Notify BASS Service that scanning has stopped
|
||||
* @note emits GATTSERVICE_SUBEVENT_BASS_SOURCE_OPERATION_COMPLETE
|
||||
* @note emits GATTSERVICE_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE
|
||||
* @param bass_cid
|
||||
* @return status
|
||||
*/
|
||||
@ -191,7 +191,7 @@ uint8_t broadcast_audio_scan_service_client_scanning_stopped(uint16_t bass_cid);
|
||||
* @brief Add Broadcast Source on service
|
||||
* @note GATTSERVICE_SUBEVENT_BASS_NOTIFICATION_COMPLETE will contain source_id for other functions
|
||||
* @param bass_cid
|
||||
* @param add_source_data data to add, needs to stay valid until GATTSERVICE_SUBEVENT_BASS_SOURCE_OPERATION_COMPLETE
|
||||
* @param add_source_data data to add, needs to stay valid until GATTSERVICE_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE
|
||||
* @return status
|
||||
*/
|
||||
uint8_t broadcast_audio_scan_service_client_add_source(uint16_t bass_cid, const bass_source_data_t * add_source_data);
|
||||
@ -200,7 +200,7 @@ uint8_t broadcast_audio_scan_service_client_add_source(uint16_t bass_cid, const
|
||||
* @brief Modify information about Broadcast Source on service
|
||||
* @param bass_cid
|
||||
* @param source_id
|
||||
* @param modify_source_data data to modify, needs to stay valid until GATTSERVICE_SUBEVENT_BASS_SOURCE_OPERATION_COMPLETE
|
||||
* @param modify_source_data data to modify, needs to stay valid until GATTSERVICE_SUBEVENT_BASS_CLIENT_SOURCE_OPERATION_COMPLETE
|
||||
* @return status
|
||||
*/
|
||||
uint8_t broadcast_audio_scan_service_client_modify_source(uint16_t bass_cid, uint8_t source_id, const bass_source_data_t * modify_source_data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user