avdtp_acceptor.c (c70720c67056dadfbbef227c89dcb22a37fba036) | avdtp_acceptor.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 --- 371 unchanged lines hidden (view full) --- 380 case AVDTP_SI_START: 381 if (stream_endpoint->state != AVDTP_STREAM_ENDPOINT_OPENED){ 382 log_info("REJECT AVDTP_SI_START, BAD_STATE, state %d", stream_endpoint->state); 383 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W2_REJECT_CATEGORY_WITH_ERROR_CODE; 384 connection->error_code = AVDTP_ERROR_CODE_BAD_STATE; 385 connection->reject_signal_identifier = connection->acceptor_signaling_packet.signal_identifier; 386 break; 387 } | 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 --- 371 unchanged lines hidden (view full) --- 380 case AVDTP_SI_START: 381 if (stream_endpoint->state != AVDTP_STREAM_ENDPOINT_OPENED){ 382 log_info("REJECT AVDTP_SI_START, BAD_STATE, state %d", stream_endpoint->state); 383 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W2_REJECT_CATEGORY_WITH_ERROR_CODE; 384 connection->error_code = AVDTP_ERROR_CODE_BAD_STATE; 385 connection->reject_signal_identifier = connection->acceptor_signaling_packet.signal_identifier; 386 break; 387 } |
388#ifdef ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION 389 log_info("W2_ACCEPT_START_STREAM"); 390 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W4_USER_CONFIRM_START_STREAM; 391#else |
|
388 log_info("W2_ANSWER_START_STREAM"); | 392 log_info("W2_ANSWER_START_STREAM"); |
389 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W2_ANSWER_START_STREAM; | 393 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W2_ACCEPT_START_STREAM; 394#endif |
390 break; 391 case AVDTP_SI_CLOSE: 392 switch (stream_endpoint->state){ 393 case AVDTP_STREAM_ENDPOINT_OPENED: 394 case AVDTP_STREAM_ENDPOINT_STREAMING: 395 log_info("W2_ANSWER_CLOSE_STREAM"); 396 stream_endpoint->state = AVDTP_STREAM_ENDPOINT_CLOSING; 397 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W2_ANSWER_CLOSE_STREAM; --- 223 unchanged lines hidden (view full) --- 621 l2cap_send_prepared(cid, pos); 622 break; 623 } 624 case AVDTP_ACCEPTOR_W2_ANSWER_OPEN_STREAM: 625 log_info("DONE"); 626 avdtp_acceptor_send_accept_response(cid, trid, AVDTP_SI_OPEN); 627 emit_accept = true; 628 break; | 395 break; 396 case AVDTP_SI_CLOSE: 397 switch (stream_endpoint->state){ 398 case AVDTP_STREAM_ENDPOINT_OPENED: 399 case AVDTP_STREAM_ENDPOINT_STREAMING: 400 log_info("W2_ANSWER_CLOSE_STREAM"); 401 stream_endpoint->state = AVDTP_STREAM_ENDPOINT_CLOSING; 402 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W2_ANSWER_CLOSE_STREAM; --- 223 unchanged lines hidden (view full) --- 626 l2cap_send_prepared(cid, pos); 627 break; 628 } 629 case AVDTP_ACCEPTOR_W2_ANSWER_OPEN_STREAM: 630 log_info("DONE"); 631 avdtp_acceptor_send_accept_response(cid, trid, AVDTP_SI_OPEN); 632 emit_accept = true; 633 break; |
629 case AVDTP_ACCEPTOR_W2_ANSWER_START_STREAM: | 634 635#ifdef ENABLE_AVDTP_ACCEPTOR_EXPLICIT_START_STREAM_CONFIRMATION 636 case AVDTP_ACCEPTOR_W4_USER_CONFIRM_START_STREAM: 637 // keep state until user calls API to confirm or reject starting the stream 638 stream_endpoint->acceptor_config_state = AVDTP_ACCEPTOR_W4_USER_CONFIRM_START_STREAM; 639 avdtp_signaling_emit_accept(connection->avdtp_cid, avdtp_local_seid(stream_endpoint), AVDTP_SI_ACCEPT_START, false); 640 break; 641 case AVDTP_ACCEPTOR_W2_REJECT_START_STREAM: 642 stream_endpoint->state = AVDTP_STREAM_ENDPOINT_OPENED; 643 connection->acceptor_signaling_packet.signal_identifier = AVDTP_SI_START; 644 emit_reject = true; 645 avdtp_acceptor_send_response_reject(cid, AVDTP_SI_START, trid); 646 break; 647#endif 648 case AVDTP_ACCEPTOR_W2_ACCEPT_START_STREAM: |
630 log_info("DONE "); 631 log_info(" -> AVDTP_STREAM_ENDPOINT_STREAMING "); 632 stream_endpoint->state = AVDTP_STREAM_ENDPOINT_STREAMING; 633 avdtp_acceptor_send_accept_response(cid, trid, AVDTP_SI_START); 634 emit_accept = true; 635 break; 636 case AVDTP_ACCEPTOR_W2_ANSWER_CLOSE_STREAM: 637 log_info("DONE"); --- 52 unchanged lines hidden --- | 649 log_info("DONE "); 650 log_info(" -> AVDTP_STREAM_ENDPOINT_STREAMING "); 651 stream_endpoint->state = AVDTP_STREAM_ENDPOINT_STREAMING; 652 avdtp_acceptor_send_accept_response(cid, trid, AVDTP_SI_START); 653 emit_accept = true; 654 break; 655 case AVDTP_ACCEPTOR_W2_ANSWER_CLOSE_STREAM: 656 log_info("DONE"); --- 52 unchanged lines hidden --- |