mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-07 04:23:37 +00:00
avdtp: emit media codec other based on local stream endpoint
This commit is contained in:
parent
0fbfe0705c
commit
f08f4934f3
@ -162,7 +162,9 @@ void avdtp_emit_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t
|
|||||||
configuration->media_codec.media_codec_information);
|
configuration->media_codec.media_codec_information);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
avdtp_signaling_emit_media_codec_other_configuration(packet_handler, avdtp_cid, local_seid, remote_seid, configuration->media_codec);
|
avdtp_signaling_emit_media_codec_other_configuration(stream_endpoint, avdtp_cid,
|
||||||
|
local_seid, remote_seid,
|
||||||
|
configuration->media_codec);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -261,6 +263,21 @@ void avdtp_signaling_emit_media_codec_sbc_reconfiguration(avdtp_stream_endpoint_
|
|||||||
media_codec_information, 1);
|
media_codec_information, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void avdtp_signaling_emit_media_codec_other_configuration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
|
||||||
|
uint8_t local_seid, uint8_t remote_seid,
|
||||||
|
adtvp_media_codec_capabilities_t media_codec) {
|
||||||
|
btstack_packet_handler_t packet_handler = avdtp_packet_handler_for_stream_endpoint(stream_endpoint);
|
||||||
|
avdtp_signaling_emit_media_codec_other(packet_handler, avdtp_cid, local_seid, remote_seid, media_codec, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
avdtp_signaling_emit_media_codec_other_reconfiguration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
|
||||||
|
uint8_t local_seid, uint8_t remote_seid,
|
||||||
|
adtvp_media_codec_capabilities_t media_codec) {
|
||||||
|
btstack_packet_handler_t packet_handler = avdtp_packet_handler_for_stream_endpoint(stream_endpoint);
|
||||||
|
avdtp_signaling_emit_media_codec_other(packet_handler, avdtp_cid, local_seid, remote_seid, media_codec, 1);
|
||||||
|
}
|
||||||
|
|
||||||
btstack_linked_list_t * avdtp_get_stream_endpoints(void){
|
btstack_linked_list_t * avdtp_get_stream_endpoints(void){
|
||||||
return &stream_endpoints;
|
return &stream_endpoints;
|
||||||
}
|
}
|
||||||
|
@ -616,6 +616,9 @@ void avdtp_signaling_emit_media_codec_sbc_configuration(avdtp_stream_endpoint_t
|
|||||||
void avdtp_signaling_emit_media_codec_sbc_reconfiguration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
|
void avdtp_signaling_emit_media_codec_sbc_reconfiguration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
|
||||||
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,
|
||||||
|
uint8_t local_seid, uint8_t remote_seid,
|
||||||
|
adtvp_media_codec_capabilities_t media_codec);
|
||||||
|
|
||||||
uint8_t is_avdtp_remote_seid_registered(avdtp_stream_endpoint_t * stream_endpoint);
|
uint8_t is_avdtp_remote_seid_registered(avdtp_stream_endpoint_t * stream_endpoint);
|
||||||
|
|
||||||
|
@ -196,7 +196,11 @@ void avdtp_initiator_stream_config_subsm(avdtp_connection_t * connection, uint8_
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// 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(context->avdtp_callback, connection->avdtp_cid, connection->initiator_local_seid, connection->initiator_remote_seid, sep.configuration.media_codec);
|
avdtp_signaling_emit_media_codec_other_configuration(stream_endpoint,
|
||||||
|
connection->avdtp_cid,
|
||||||
|
connection->initiator_local_seid,
|
||||||
|
connection->initiator_remote_seid,
|
||||||
|
sep.configuration.media_codec);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -692,7 +692,21 @@ static void avdtp_signaling_emit_media_codec_other_capability(btstack_packet_han
|
|||||||
(*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
(*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void avdtp_signaling_emit_media_codec_other(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec, uint8_t reconfigure){
|
static void avdtp_signaling_emit_capability_done(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid){
|
||||||
|
btstack_assert(callback != NULL);
|
||||||
|
uint8_t event[7];
|
||||||
|
int pos = 0;
|
||||||
|
event[pos++] = HCI_EVENT_AVDTP_META;
|
||||||
|
event[pos++] = sizeof(event) - 2;
|
||||||
|
event[pos++] = AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE;
|
||||||
|
little_endian_store_16(event, pos, avdtp_cid);
|
||||||
|
pos += 2;
|
||||||
|
event[pos++] = local_seid;
|
||||||
|
event[pos++] = remote_seid;
|
||||||
|
(*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
void avdtp_signaling_emit_media_codec_other(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec, uint8_t reconfigure){
|
||||||
btstack_assert(callback != NULL);
|
btstack_assert(callback != NULL);
|
||||||
uint8_t event[MAX_MEDIA_CODEC_INFORMATION_LENGTH + 13];
|
uint8_t event[MAX_MEDIA_CODEC_INFORMATION_LENGTH + 13];
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
@ -717,30 +731,6 @@ static inline void avdtp_signaling_emit_media_codec_other(btstack_packet_handler
|
|||||||
(*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
(*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void avdtp_signaling_emit_capability_done(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid){
|
|
||||||
btstack_assert(callback != NULL);
|
|
||||||
uint8_t event[7];
|
|
||||||
int pos = 0;
|
|
||||||
event[pos++] = HCI_EVENT_AVDTP_META;
|
|
||||||
event[pos++] = sizeof(event) - 2;
|
|
||||||
event[pos++] = AVDTP_SUBEVENT_SIGNALING_CAPABILITIES_DONE;
|
|
||||||
little_endian_store_16(event, pos, avdtp_cid);
|
|
||||||
pos += 2;
|
|
||||||
event[pos++] = local_seid;
|
|
||||||
event[pos++] = remote_seid;
|
|
||||||
(*callback)(HCI_EVENT_PACKET, 0, event, sizeof(event));
|
|
||||||
}
|
|
||||||
|
|
||||||
void avdtp_signaling_emit_media_codec_other_configuration(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec){
|
|
||||||
btstack_assert(callback != NULL);
|
|
||||||
avdtp_signaling_emit_media_codec_other(callback, avdtp_cid, local_seid, remote_seid, media_codec, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void avdtp_signaling_emit_media_codec_other_reconfiguration(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec){
|
|
||||||
btstack_assert(callback != NULL);
|
|
||||||
avdtp_signaling_emit_media_codec_other(callback, avdtp_cid, local_seid, remote_seid, media_codec, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void avdtp_emit_capabilities(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, avdtp_capabilities_t * capabilities, uint16_t registered_service_categories){
|
void avdtp_emit_capabilities(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, avdtp_capabilities_t * capabilities, uint16_t registered_service_categories){
|
||||||
if (get_bit16(registered_service_categories, AVDTP_MEDIA_CODEC)){
|
if (get_bit16(registered_service_categories, AVDTP_MEDIA_CODEC)){
|
||||||
switch (capabilities->media_codec.media_codec_type){
|
switch (capabilities->media_codec.media_codec_type){
|
||||||
|
@ -82,8 +82,11 @@ void avdtp_signaling_emit_reject(btstack_packet_handler_t callback, uint16_t avd
|
|||||||
|
|
||||||
void avdtp_emit_capabilities(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, avdtp_capabilities_t * configuration, uint16_t configured_service_categories);
|
void avdtp_emit_capabilities(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, avdtp_capabilities_t * configuration, uint16_t configured_service_categories);
|
||||||
|
|
||||||
void avdtp_signaling_emit_media_codec_other_configuration(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t int_seid, uint8_t acp_seid, adtvp_media_codec_capabilities_t media_codec);
|
void
|
||||||
void avdtp_signaling_emit_media_codec_other_reconfiguration(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t int_seid, uint8_t acp_seid, adtvp_media_codec_capabilities_t media_codec);
|
avdtp_signaling_emit_media_codec_other_reconfiguration(avdtp_stream_endpoint_t *stream_endpoint, uint16_t avdtp_cid,
|
||||||
|
uint8_t local_seid, uint8_t remote_seid,
|
||||||
|
adtvp_media_codec_capabilities_t media_codec);
|
||||||
|
void avdtp_signaling_emit_media_codec_other(btstack_packet_handler_t callback, uint16_t avdtp_cid, uint8_t local_seid, uint8_t remote_seid, adtvp_media_codec_capabilities_t media_codec, uint8_t reconfigure);
|
||||||
|
|
||||||
uint8_t avdtp_request_can_send_now_acceptor(avdtp_connection_t * connection, uint16_t l2cap_cid);
|
uint8_t avdtp_request_can_send_now_acceptor(avdtp_connection_t * connection, uint16_t l2cap_cid);
|
||||||
uint8_t avdtp_request_can_send_now_initiator(avdtp_connection_t * connection, uint16_t l2cap_cid);
|
uint8_t avdtp_request_can_send_now_initiator(avdtp_connection_t * connection, uint16_t l2cap_cid);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user