From 522706d7b490f85207c492962f874b9f76884c09 Mon Sep 17 00:00:00 2001 From: Milanka Ringwald Date: Fri, 20 Sep 2019 16:38:35 +0200 Subject: [PATCH] avdtp_sink: use delay in avdtp_sink_delay_report function with 100us unit --- src/classic/avdtp_sink.c | 14 +++++--------- src/classic/avdtp_sink.h | 6 +++--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/classic/avdtp_sink.c b/src/classic/avdtp_sink.c index 3b02bde1e..5e5261e1e 100644 --- a/src/classic/avdtp_sink.c +++ b/src/classic/avdtp_sink.c @@ -192,37 +192,33 @@ uint8_t avdtp_sink_reconfigure(uint16_t avdtp_cid, uint8_t local_seid, uint8_t r return avdtp_reconfigure(avdtp_cid, local_seid, remote_seid, configured_services_bitmap, configuration, avdtp_sink_context); } -uint8_t avdtp_sink_delay_report(uint16_t avdtp_cid, uint8_t local_seid, uint16_t delay_ms){ - printf("send delay_report\n"); +uint8_t avdtp_sink_delay_report(uint16_t avdtp_cid, uint8_t local_seid, uint16_t delay_100us){ avdtp_connection_t * connection = avdtp_connection_for_avdtp_cid(avdtp_cid, avdtp_sink_context); if (!connection){ log_error("delay_report: no connection for signaling cid 0x%02x found", avdtp_cid); return AVDTP_CONNECTION_DOES_NOT_EXIST; } - printf("send delay_report 1\n"); + if (connection->state != AVDTP_SIGNALING_CONNECTION_OPENED || connection->initiator_connection_state != AVDTP_SIGNALING_CONNECTION_INITIATOR_IDLE) { log_error("delay_report: connection in wrong state, state %d, initiator state %d", connection->state, connection->initiator_connection_state); return AVDTP_CONNECTION_IN_WRONG_STATE; } - printf("send delay_report 2\n"); avdtp_stream_endpoint_t * stream_endpoint = avdtp_stream_endpoint_with_seid(local_seid, avdtp_sink_context); if (!stream_endpoint) { log_error("delay_report: no stream_endpoint with seid %d found", local_seid); return AVDTP_SEID_DOES_NOT_EXIST; } - printf("send delay_report 3\n"); - + if (stream_endpoint->state < AVDTP_STREAM_ENDPOINT_CONFIGURED){ log_error("Stream endpoint seid %d in wrong state %d", local_seid, stream_endpoint->state); return AVDTP_STREAM_ENDPOINT_IN_WRONG_STATE; } - printf("send delay_report 4\n"); - + connection->initiator_transaction_label++; connection->initiator_connection_state = AVDTP_SIGNALING_CONNECTION_INITIATOR_W2_SEND_DELAY_REPORT; - connection->delay_ms = delay_ms * 10; + connection->delay_ms = delay_100us; connection->local_seid = local_seid; connection->remote_seid = stream_endpoint->remote_sep.seid; avdtp_request_can_send_now_initiator(connection, connection->l2cap_signaling_cid); diff --git a/src/classic/avdtp_sink.h b/src/classic/avdtp_sink.h index 647d1fc3d..15d360cb7 100644 --- a/src/classic/avdtp_sink.h +++ b/src/classic/avdtp_sink.h @@ -165,11 +165,11 @@ uint8_t avdtp_sink_stop_stream(uint16_t avdtp_cid, uint8_t local_seid); uint8_t avdtp_sink_suspend(uint16_t avdtp_cid, uint8_t local_seid); /** - * @brief Suspend stream + * @brief Report delay * @param local_seid - * @param delay_ms + * @param delay_100us */ -uint8_t avdtp_sink_delay_report(uint16_t avdtp_cid, uint8_t local_seid, uint16_t delay_ms); +uint8_t avdtp_sink_delay_report(uint16_t avdtp_cid, uint8_t local_seid, uint16_t delay_100us); // AVDTP_SI_DELAYREPORT