Re: [PATCH v2 2/5] AVRCP: implement TRACK-REACHED-START event

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

 



Hi Lucas,

On Mon, Oct 17, 2011 at 11:34 PM, Lucas De Marchi
<lucas.demarchi@xxxxxxxxxxxxxx> wrote:
> ---
>  audio/avrcp.c |   13 ++++++++++---
>  audio/avrcp.h |    2 ++
>  audio/media.c |    5 +++++
>  3 files changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/audio/avrcp.c b/audio/avrcp.c
> index 076fdf4..b1c3d54 100644
> --- a/audio/avrcp.c
> +++ b/audio/avrcp.c
> @@ -136,7 +136,7 @@ struct avrcp_player {
>
>        unsigned int handler;
>        uint16_t registered_events;
> -       uint8_t transaction_events[AVRCP_EVENT_TRACK_CHANGED + 1];
> +       uint8_t transaction_events[AVRCP_EVENT_LAST + 1];
>
>        struct avrcp_player_cb *cb;
>        void *user_data;
> @@ -368,6 +368,9 @@ int avrcp_player_event(struct avrcp_player *player, uint8_t id, void *data)
>                memcpy(&pdu->params[1], data, sizeof(uint64_t));
>
>                break;
> +       case AVRCP_EVENT_TRACK_REACHED_START:
> +               size = 1;
> +               break;
>        default:
>                error("Unknown event %u", id);
>                return -EINVAL;
> @@ -504,10 +507,11 @@ static uint8_t avrcp_handle_get_capabilities(struct avrcp_player *player,
>
>                return AVC_CTYPE_STABLE;
>        case CAP_EVENTS_SUPPORTED:
> -               pdu->params_len = htons(4);
> -               pdu->params[1] = 2;
> +               pdu->params_len = htons(5);
> +               pdu->params[1] = 3;
>                pdu->params[2] = AVRCP_EVENT_STATUS_CHANGED;
>                pdu->params[3] = AVRCP_EVENT_TRACK_CHANGED;
> +               pdu->params[4] = AVRCP_EVENT_TRACK_REACHED_START;
>
>                return AVC_CTYPE_STABLE;
>        }
> @@ -843,6 +847,9 @@ static uint8_t avrcp_handle_register_notification(struct avrcp_player *player,
>                memcpy(&pdu->params[1], &uid, sizeof(uint64_t));
>
>                break;
> +       case AVRCP_EVENT_TRACK_REACHED_START:
> +               len = 1;
> +               break;
>        default:
>                /* All other events are not supported yet */
>                goto err;
> diff --git a/audio/avrcp.h b/audio/avrcp.h
> index 8cf95a4..c798658 100644
> --- a/audio/avrcp.h
> +++ b/audio/avrcp.h
> @@ -71,6 +71,8 @@
>  /* Notification events */
>  #define AVRCP_EVENT_STATUS_CHANGED     0x01
>  #define AVRCP_EVENT_TRACK_CHANGED      0x02
> +#define AVRCP_EVENT_TRACK_REACHED_START        0x04
> +#define AVRCP_EVENT_LAST               AVRCP_EVENT_TRACK_REACHED_START
>
>  struct avrcp_player_cb {
>        int (*get_setting) (uint8_t attr, void *user_data);
> diff --git a/audio/media.c b/audio/media.c
> index 9ef393b..a7647ea 100644
> --- a/audio/media.c
> +++ b/audio/media.c
> @@ -1289,6 +1289,11 @@ static gboolean set_position(struct media_player *mp, DBusMessageIter *iter)
>        mp->position = value;
>        g_timer_start(mp->timer);
>
> +       if (!mp->position) {
> +               avrcp_player_event(mp->player,
> +                                       AVRCP_EVENT_TRACK_REACHED_START, NULL);
> +       }
> +
>        return TRUE;
>  }
>
> --
> 1.7.7
>
> --

Ack.

-- 
Luiz Augusto von Dentz
--
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