OSDN Git Service

AVRCP: Move features to avrcp.c
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 15 Feb 2013 14:02:49 +0000 (16:02 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Fri, 15 Feb 2013 14:35:12 +0000 (16:35 +0200)
avrcp.c should be responsible for specifics of AVRCP not player.c which
is more high level abstraction.

profiles/audio/avrcp.c
profiles/audio/player.c
profiles/audio/player.h

index cabe2ee..55887bc 100644 (file)
@@ -180,6 +180,7 @@ struct avrcp_player {
        GSList *sessions;
        uint16_t id;
        uint16_t uid_counter;
+       uint8_t *features;
 
        struct avrcp_player_cb *cb;
        void *user_data;
@@ -1981,6 +1982,8 @@ static void avrcp_player_parse_features(struct avrcp_player *player,
 {
        struct media_player *mp = player->user_data;
 
+       player->features = g_memdup(features, 16);
+
        if (features[7] & 0x08)
                media_player_set_browsable(mp, true);
 
@@ -2553,6 +2556,7 @@ static void player_destroy(gpointer data)
                player->destroy(player->user_data);
 
        g_slist_free(player->sessions);
+       g_free(player->features);
        g_free(player);
 }
 
index 7879193..07fd457 100644 (file)
@@ -69,7 +69,6 @@ struct media_player {
        char                    *subtype;       /* Player subtype */
        bool                    browsable;      /* Player browsing feature */
        bool                    searchable;     /* Player searching feature */
-       uint8_t                 *features;      /* Player features */
        struct media_folder     *folder;        /* Player currenct folder */
        char                    *path;          /* Player object path */
        GHashTable              *settings;      /* Player settings */
@@ -941,13 +940,6 @@ void media_player_set_folder(struct media_player *mp, const char *path,
        }
 }
 
-void media_player_set_features(struct media_player *mp, uint64_t *features)
-{
-       DBG("0x%016" PRIx64 "%016" PRIx64, features[0], features[1]);
-
-       memcpy(features, mp->features, sizeof(mp->features));
-}
-
 void media_player_set_callbacks(struct media_player *mp,
                                const struct media_player_callback *cbs,
                                void *user_data)
index e9a7d1c..9109b1f 100644 (file)
@@ -49,7 +49,6 @@ void media_player_set_metadata(struct media_player *mp, const char *key,
                                                void *data, size_t len);
 void media_player_set_type(struct media_player *mp, const char *type);
 void media_player_set_subtype(struct media_player *mp, const char *subtype);
-void media_player_set_features(struct media_player *mp, uint64_t *features);
 void media_player_set_name(struct media_player *mp, const char *name);
 void media_player_set_browsable(struct media_player *mp, bool enabled);
 void media_player_set_searchable(struct media_player *mp, bool enabled);