avdtp_util: pass adtvp_media_codec_capabilities_t as pointer

This commit is contained in:
Matthias Ringwald 2020-08-19 12:34:32 +02:00
parent d2c939c5c4
commit e8a431c12b
3 changed files with 14 additions and 19 deletions

View File

@ -169,7 +169,7 @@ void avdtp_initiator_stream_config_subsm(avdtp_connection_t *connection, uint8_t
connection->configuration_state = AVDTP_CONFIGURATION_STATE_LOCAL_CONFIGURED; connection->configuration_state = AVDTP_CONFIGURATION_STATE_LOCAL_CONFIGURED;
log_info("INT: configured remote seid %d, to %p", stream_endpoint->remote_sep.seid, stream_endpoint); log_info("INT: configured remote seid %d, to %p", stream_endpoint->remote_sep.seid, stream_endpoint);
switch (stream_endpoint->media_codec_type){ switch (stream_endpoint->media_codec_type){
case AVDTP_CODEC_SBC: case AVDTP_CODEC_SBC:
avdtp_signaling_emit_media_codec_sbc_configuration( avdtp_signaling_emit_media_codec_sbc_configuration(
@ -182,7 +182,7 @@ void avdtp_initiator_stream_config_subsm(avdtp_connection_t *connection, uint8_t
// TODO: we don\t have codec info to emit config // TODO: we don\t have codec info to emit config
avdtp_signaling_emit_media_codec_other_configuration(stream_endpoint, avdtp_signaling_emit_media_codec_other_configuration(stream_endpoint,
connection->avdtp_cid, connection->avdtp_cid,
sep.configuration.media_codec); &sep.configuration.media_codec);
break; break;
} }
break; break;

View File

@ -832,7 +832,7 @@ void avdtp_signaling_emit_media_codec_sbc(avdtp_stream_endpoint_t *stream_endpoi
void void
avdtp_signaling_emit_media_codec_other(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid, avdtp_signaling_emit_media_codec_other(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
adtvp_media_codec_capabilities_t media_codec, uint8_t reconfigure) { adtvp_media_codec_capabilities_t * media_codec, uint8_t reconfigure) {
btstack_packet_handler_t packet_handler = avdtp_packet_handler_for_stream_endpoint(stream_endpoint); btstack_packet_handler_t packet_handler = avdtp_packet_handler_for_stream_endpoint(stream_endpoint);
uint8_t local_seid = avdtp_local_seid(stream_endpoint); uint8_t local_seid = avdtp_local_seid(stream_endpoint);
@ -848,15 +848,14 @@ avdtp_signaling_emit_media_codec_other(avdtp_stream_endpoint_t *stream_endpoint,
event[pos++] = local_seid; event[pos++] = local_seid;
event[pos++] = remote_seid; event[pos++] = remote_seid;
event[pos++] = reconfigure; event[pos++] = reconfigure;
event[pos++] = media_codec.media_type; event[pos++] = media_codec->media_type;
little_endian_store_16(event, pos, media_codec.media_codec_type); little_endian_store_16(event, pos, media_codec->media_codec_type);
pos += 2; pos += 2;
little_endian_store_16(event, pos, media_codec.media_codec_information_len); little_endian_store_16(event, pos, media_codec->media_codec_information_len);
pos += 2; pos += 2;
int media_codec_len = btstack_min(MAX_MEDIA_CODEC_INFORMATION_LENGTH, media_codec.media_codec_information_len); int media_codec_len = btstack_min(MAX_MEDIA_CODEC_INFORMATION_LENGTH, media_codec->media_codec_information_len);
(void)memcpy(event + pos, media_codec.media_codec_information, (void)memcpy(event + pos, media_codec->media_codec_information, media_codec_len);
media_codec_len);
(*packet_handler)(HCI_EVENT_PACKET, 0, event, sizeof(event)); (*packet_handler)(HCI_EVENT_PACKET, 0, event, sizeof(event));
} }
@ -890,22 +889,18 @@ void avdtp_signaling_emit_media_codec_sbc_reconfiguration(avdtp_stream_endpoint_
} }
void avdtp_signaling_emit_media_codec_other_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid, void avdtp_signaling_emit_media_codec_other_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
adtvp_media_codec_capabilities_t media_codec) { adtvp_media_codec_capabilities_t * media_codec) {
avdtp_signaling_emit_media_codec_other(stream_endpoint, avdtp_cid, media_codec, 0); avdtp_signaling_emit_media_codec_other(stream_endpoint, avdtp_cid, media_codec, 0);
} }
void void avdtp_signaling_emit_media_codec_other_reconfiguration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
avdtp_signaling_emit_media_codec_other_reconfiguration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid, adtvp_media_codec_capabilities_t * media_codec) {
adtvp_media_codec_capabilities_t media_codec) {
avdtp_signaling_emit_media_codec_other(stream_endpoint, avdtp_cid, media_codec, 1); avdtp_signaling_emit_media_codec_other(stream_endpoint, avdtp_cid, media_codec, 1);
} }
void avdtp_signaling_emit_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid, void avdtp_signaling_emit_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
avdtp_capabilities_t *configuration, uint16_t configured_service_categories) { avdtp_capabilities_t *configuration, uint16_t configured_service_categories) {
uint8_t local_seid = avdtp_local_seid(stream_endpoint);
uint8_t remote_seid = avdtp_remote_seid(stream_endpoint);
if (get_bit16(configured_service_categories, AVDTP_MEDIA_CODEC)){ if (get_bit16(configured_service_categories, AVDTP_MEDIA_CODEC)){
switch (configuration->media_codec.media_codec_type){ switch (configuration->media_codec.media_codec_type){
case AVDTP_CODEC_SBC: case AVDTP_CODEC_SBC:
@ -916,7 +911,7 @@ void avdtp_signaling_emit_configuration(avdtp_stream_endpoint_t *stream_endpoint
break; break;
default: default:
avdtp_signaling_emit_media_codec_other_configuration(stream_endpoint, avdtp_cid, avdtp_signaling_emit_media_codec_other_configuration(stream_endpoint, avdtp_cid,
configuration->media_codec); &configuration->media_codec);
break; break;
} }
} }

View File

@ -96,7 +96,7 @@ void avdtp_signaling_emit_media_codec_sbc_configuration(avdtp_stream_endpoint_t
avdtp_media_type_t media_type, avdtp_media_type_t media_type,
const uint8_t *media_codec_information); const uint8_t *media_codec_information);
void avdtp_signaling_emit_media_codec_other_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid, void avdtp_signaling_emit_media_codec_other_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
adtvp_media_codec_capabilities_t media_codec); adtvp_media_codec_capabilities_t * media_codec);
void avdtp_streaming_emit_connection_established(avdtp_stream_endpoint_t *stream_endpoint, uint8_t status); void avdtp_streaming_emit_connection_established(avdtp_stream_endpoint_t *stream_endpoint, uint8_t status);