Re: [PATCH BlueZ 1/2] audio/sink: Fix not notifying service about connection state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Luiz,

On Thu, Jul 4, 2013 at 2:00 PM, Luiz Augusto von Dentz
<luiz.dentz@xxxxxxxxx> wrote:
> From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx>
>
> btd_service_connecting_complete should be called whenever the service
> is connected otherwise the service state will not be consistent.
> ---
>  profiles/audio/sink.c | 16 ++++------------
>  1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/profiles/audio/sink.c b/profiles/audio/sink.c
> index 3969417..f55efe8 100644
> --- a/profiles/audio/sink.c
> +++ b/profiles/audio/sink.c
> @@ -164,6 +164,7 @@ static void stream_state_changed(struct avdtp_stream *stream,
>                 sink->cb_id = 0;
>                 break;
>         case AVDTP_STATE_OPEN:
> +               btd_service_connecting_complete(sink->service, 0);

I guess it's impossible to enter AVDTP_STATE_STREAMING without being OPEN first?

If this is guaranteed, the patch looks good to me.

Cheers,
Mikel

>                 sink_set_state(dev, SINK_STATE_CONNECTED);
>                 break;
>         case AVDTP_STATE_STREAMING:
> @@ -182,20 +183,14 @@ static void stream_state_changed(struct avdtp_stream *stream,
>  static gboolean stream_setup_retry(gpointer user_data)
>  {
>         struct sink *sink = user_data;
> -       int err;
>
>         sink->retry_id = 0;
>
> -       if (sink->stream_state >= AVDTP_STATE_OPEN) {
> -               DBG("Stream successfully created, after XCASE connect:connect");
> -               err = 0;
> -       } else {
> +       if (sink->stream_state < AVDTP_STATE_OPEN) {
>                 DBG("Stream setup failed, after XCASE connect:connect");
> -               err = -EIO;
> +               btd_service_connecting_complete(sink->service, -EIO);
>         }
>
> -       btd_service_connecting_complete(sink->service, err);
> -
>         if (sink->connect_id > 0) {
>                 a2dp_cancel(sink->dev, sink->connect_id);
>                 sink->connect_id = 0;
> @@ -212,11 +207,8 @@ static void stream_setup_complete(struct avdtp *session, struct a2dp_sep *sep,
>
>         sink->connect_id = 0;
>
> -       if (stream) {
> -               DBG("Stream successfully created");
> -               btd_service_connecting_complete(sink->service, 0);
> +       if (stream)
>                 return;
> -       }
>
>         avdtp_unref(sink->session);
>         sink->session = NULL;
> --
> 1.8.1.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux