Lines Matching refs:source
214 …d bass_server_source_emit_source_added(hci_con_handle_t con_handle, bass_server_source_t * source){ in bass_server_source_emit_source_added() argument
215 …_changed(LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_ADDED, con_handle, source->source_id, source->data.pa… in bass_server_source_emit_source_added()
218 …ass_server_source_emit_source_modified(hci_con_handle_t con_handle, bass_server_source_t * source){ in bass_server_source_emit_source_modified() argument
219 …anged(LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_MODIFIED, con_handle, source->source_id, source->data.pa… in bass_server_source_emit_source_modified()
222 …bass_server_source_emit_source_deleted(hci_con_handle_t con_handle, bass_server_source_t * source){ in bass_server_source_emit_source_deleted() argument
223 …e_state_changed(LEAUDIO_SUBEVENT_BASS_SERVER_SOURCE_DELETED, con_handle, source->source_id, LE_AUD… in bass_server_source_emit_source_deleted()
243 static uint16_t bass_server_copy_source_to_buffer(bass_server_source_t * source, uint16_t buffer_of… in bass_server_copy_source_to_buffer() argument
249 if (!source->in_use){ in bass_server_copy_source_to_buffer()
252 field_data[0] = source->source_id; in bass_server_copy_source_to_buffer()
257 …stored_bytes += bass_util_source_data_header_virtual_memcpy(&source->data, &source_offset, buffer_… in bass_server_copy_source_to_buffer()
260 field_data[0] = (uint8_t)source->data.pa_sync_state; in bass_server_copy_source_to_buffer()
265 field_data[0] = (uint8_t)source->big_encryption; in bass_server_copy_source_to_buffer()
270 if (source->big_encryption == LE_AUDIO_BIG_ENCRYPTION_BAD_CODE){ in bass_server_copy_source_to_buffer()
271 reverse_128(source->bad_code, &field_data[0]); in bass_server_copy_source_to_buffer()
277 …stored_bytes += bass_util_source_data_subgroups_virtual_memcpy(&source->data, true, &source_offset… in bass_server_copy_source_to_buffer()
286 … bass_server_source_t * source = bass_server_find_receive_state_for_value_handle(attribute_handle); in bass_server_read_callback() local
287 if (source){ in bass_server_read_callback()
288 return bass_server_copy_source_to_buffer(source, offset, buffer, buffer_size); in bass_server_read_callback()
291 source = bass_server_find_receive_state_for_client_configuration_handle(attribute_handle); in bass_server_read_callback()
292 if (source){ in bass_server_read_callback()
293 …return att_read_callback_handle_little_endian_16(source->bass_receive_state_client_configuration, … in bass_server_read_callback()
309 …erver_add_source_from_buffer(uint8_t *buffer, uint16_t buffer_size, bass_server_source_t * source){ in bass_server_add_source_from_buffer() argument
312 source->update_counter = bass_server_get_next_update_counter(); in bass_server_add_source_from_buffer()
313 source->in_use = true; in bass_server_add_source_from_buffer()
315 bass_util_source_data_parse(buffer, buffer_size, &source->data, false); in bass_server_add_source_from_buffer()
318 static bool bass_server_pa_synchronized(bass_server_source_t * source){ in bass_server_pa_synchronized() argument
319 return source->data.pa_sync_state == LE_AUDIO_PA_SYNC_STATE_SYNCHRONIZED_TO_PA; in bass_server_pa_synchronized()
323 static bool bass_server_bis_synchronized(bass_server_source_t * source){ in bass_server_bis_synchronized() argument
325 for (i = 0; i < source->data.subgroups_num; i++){ in bass_server_bis_synchronized()
326 …if ((source->data.subgroups[i].bis_sync_state > 0) && (source->data.subgroups[i].bis_sync_state < … in bass_server_bis_synchronized()
334 static void bass_server_reset_source(bass_server_source_t * source){ in bass_server_reset_source() argument
335 source->in_use = false; in bass_server_reset_source()
336 source->data.address_type = BD_ADDR_TYPE_LE_PUBLIC; in bass_server_reset_source()
337 memset(source->data.address, 0, sizeof(source->data.address)); in bass_server_reset_source()
338 source->data.adv_sid = 0; in bass_server_reset_source()
339 source->data.broadcast_id = 0; in bass_server_reset_source()
340 source->data.pa_sync = LE_AUDIO_PA_SYNC_DO_NOT_SYNCHRONIZE_TO_PA; in bass_server_reset_source()
341 source->data.pa_sync_state = LE_AUDIO_PA_SYNC_STATE_NOT_SYNCHRONIZED_TO_PA; in bass_server_reset_source()
342 source->big_encryption = LE_AUDIO_BIG_ENCRYPTION_NOT_ENCRYPTED; in bass_server_reset_source()
343 memset(source->bad_code, 0, sizeof(source->bad_code)); in bass_server_reset_source()
344 source->data.pa_interval = 0; in bass_server_reset_source()
345 source->data.subgroups_num = 0; in bass_server_reset_source()
346 memset(source->data.subgroups, 0, sizeof(source->data.subgroups)); in bass_server_reset_source()
357 …bass_server_source_t * source = bass_server_find_receive_state_for_client_configuration_handle(att… in bass_server_write_callback() local
358 if (source){ in bass_server_write_callback()
359 source->bass_receive_state_client_configuration = little_endian_read_16(buffer, 0); in bass_server_write_callback()
360 … bass_server_register_con_handle(con_handle, source->bass_receive_state_client_configuration); in bass_server_write_callback()
416 bass_server_source_t * source; in bass_server_write_callback() local
437 source = bass_server_find_empty_or_last_used_source(); in bass_server_write_callback()
438 btstack_assert(source != NULL); in bass_server_write_callback()
439 log_info("add source %d", source->source_id); in bass_server_write_callback()
440 bass_server_add_source_from_buffer(remote_data, remote_data_size, source); in bass_server_write_callback()
441 bass_server_source_emit_source_added(con_handle, source); in bass_server_write_callback()
450 source = bass_server_find_source_for_source_id(remote_data[0]); in bass_server_write_callback()
451 if (source == NULL){ in bass_server_write_callback()
454 …bass_util_pa_info_and_subgroups_parse(remote_data + 1, remote_data_size - 1, &source->data, false); in bass_server_write_callback()
455 bass_server_source_emit_source_modified(con_handle, source); in bass_server_write_callback()
464 source = bass_server_find_source_for_source_id(remote_data[0]); in bass_server_write_callback()
465 if (source == NULL){ in bass_server_write_callback()
469 … bass_server_source_emit_broadcast_code(con_handle, source->source_id, broadcast_code); in bass_server_write_callback()
476 source = bass_server_find_source_for_source_id(remote_data[0]); in bass_server_write_callback()
477 if (source == NULL){ in bass_server_write_callback()
481 if (bass_server_pa_synchronized(source)){ in bass_server_write_callback()
482 log_info("remove source %d rejected, PA synchronised", source->source_id); in bass_server_write_callback()
486 if (bass_server_bis_synchronized(source)){ in bass_server_write_callback()
487 log_info("remove source %d rejected, BIS synchronised", source->source_id); in bass_server_write_callback()
491 bass_server_reset_source(source); in bass_server_write_callback()
492 …broadcast_audio_scan_service_server_set_pa_sync_state(source->source_id, LE_AUDIO_PA_SYNC_STATE_NO… in bass_server_write_callback()
493 bass_server_source_emit_source_deleted(con_handle, source); in bass_server_write_callback()
562 bass_server_source_t * source = &bass_sources[bass_sources_num]; in broadcast_audio_scan_service_server_init() local
563 bass_server_reset_source(source); in broadcast_audio_scan_service_server_init()
565 source->source_id = bass_sources_num; in broadcast_audio_scan_service_server_init()
566 source->update_counter = bass_server_get_next_update_counter(); in broadcast_audio_scan_service_server_init()
567 source->bass_receive_state_client_configuration = 0; in broadcast_audio_scan_service_server_init()
569 source->bass_receive_state_handle = chr_value_handle; in broadcast_audio_scan_service_server_init()
570 source->bass_receive_state_client_configuration_handle = chr_client_configuration_handle; in broadcast_audio_scan_service_server_init()
573 …printf(" bass_receive_state_%d 0x%02x \n", bass_sources_num, source->bass_recei… in broadcast_audio_scan_service_server_init()
574 …printf(" bass_receive_state_%d CCC 0x%02x \n", bass_sources_num, source->bass_recei… in broadcast_audio_scan_service_server_init()
664 bass_server_source_t * source = &bass_sources[source_index]; in broadcast_audio_scan_service_server_set_pa_sync_state() local
665 source->data.pa_sync_state = sync_state; in broadcast_audio_scan_service_server_set_pa_sync_state()
667 if (source->bass_receive_state_client_configuration != 0){ in broadcast_audio_scan_service_server_set_pa_sync_state()