a2dp_sink.c (59dedcb978503e91c74ba64070626e6db4d04d32) a2dp_sink.c (48ce193c1bb43973676c530932628af0332bfb28)
1/*
2 * Copyright (C) 2016 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 193 unchanged lines hidden (view full) ---

202 log_info("No local_stream_endpoint for seid %d", local_seid);
203 return ERROR_CODE_COMMAND_DISALLOWED;
204 }
205 // remember to tell client
206 a2dp_sink_outgoing_active = true;
207 return avdtp_sink_connect(bd_addr, avdtp_cid);
208}
209
1/*
2 * Copyright (C) 2016 BlueKitchen GmbH
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright

--- 193 unchanged lines hidden (view full) ---

202 log_info("No local_stream_endpoint for seid %d", local_seid);
203 return ERROR_CODE_COMMAND_DISALLOWED;
204 }
205 // remember to tell client
206 a2dp_sink_outgoing_active = true;
207 return avdtp_sink_connect(bd_addr, avdtp_cid);
208}
209
210#ifdef ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION
211uint8_t a2dp_sink_start_stream_accept(uint16_t a2dp_cid, uint8_t local_seid){
212 return avdtp_start_stream_accept(a2dp_cid, local_seid);
213}
214
215uint8_t a2dp_sink_start_stream_reject(uint16_t a2dp_cid, uint8_t local_seid){
216 return avdtp_start_stream_reject(a2dp_cid, local_seid);
217}
218#endif
219
210void a2dp_sink_disconnect(uint16_t a2dp_cid){
211 avdtp_disconnect(a2dp_cid);
212}
213
214static void a2dp_sink_packet_handler_internal(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
215 UNUSED(channel);
216 UNUSED(size);
217

--- 71 unchanged lines hidden (view full) ---

289 break;
290 case AVDTP_SI_SUSPEND:
291 a2dp_emit_stream_event(a2dp_sink_packet_handler_user, a2dp_sink_cid, local_seid, A2DP_SUBEVENT_STREAM_SUSPENDED);
292 break;
293 case AVDTP_SI_ABORT:
294 case AVDTP_SI_CLOSE:
295 a2dp_emit_stream_event(a2dp_sink_packet_handler_user, a2dp_sink_cid, local_seid, A2DP_SUBEVENT_STREAM_STOPPED);
296 break;
220void a2dp_sink_disconnect(uint16_t a2dp_cid){
221 avdtp_disconnect(a2dp_cid);
222}
223
224static void a2dp_sink_packet_handler_internal(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
225 UNUSED(channel);
226 UNUSED(size);
227

--- 71 unchanged lines hidden (view full) ---

299 break;
300 case AVDTP_SI_SUSPEND:
301 a2dp_emit_stream_event(a2dp_sink_packet_handler_user, a2dp_sink_cid, local_seid, A2DP_SUBEVENT_STREAM_SUSPENDED);
302 break;
303 case AVDTP_SI_ABORT:
304 case AVDTP_SI_CLOSE:
305 a2dp_emit_stream_event(a2dp_sink_packet_handler_user, a2dp_sink_cid, local_seid, A2DP_SUBEVENT_STREAM_STOPPED);
306 break;
307#ifdef ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION
308 case AVDTP_SI_ACCEPT_START:
309 a2dp_emit_stream_event(a2dp_sink_packet_handler_user, a2dp_sink_cid, local_seid, A2DP_SUBEVENT_START_STREAM_REQUESTED);
310 break;
311#endif
297 default:
298 break;
299 }
300 break;
301
302 case AVDTP_SUBEVENT_SIGNALING_REJECT:
303 if (a2dp_sink_stream_endpoint_configured == false) break;
304 if (a2dp_sink_cid != avdtp_subevent_signaling_reject_get_avdtp_cid(packet)) break;

--- 52 unchanged lines hidden ---
312 default:
313 break;
314 }
315 break;
316
317 case AVDTP_SUBEVENT_SIGNALING_REJECT:
318 if (a2dp_sink_stream_endpoint_configured == false) break;
319 if (a2dp_sink_cid != avdtp_subevent_signaling_reject_get_avdtp_cid(packet)) break;

--- 52 unchanged lines hidden ---