gatt-client/bass_client: update events and internal function names

This commit is contained in:
Milanka Ringwald 2023-01-27 17:41:14 +01:00 committed by Matthias Ringwald
parent 16b5de7989
commit 97c78dc616
2 changed files with 68 additions and 66 deletions

View File

@ -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;
}

View File

@ -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);