event_info->cb, event_info->user_data);
} else if (strcasecmp(signal_name, BT_MEDIA_TRACK_CHANGE) == 0) {
media_metadata_attributes_t metadata;
- const char *title;
- const char *artist;
- const char *album;
- const char *genre;
+ GVariant *title = NULL;
+ GVariant *artist = NULL;
+ GVariant *album = NULL;
+ GVariant *genre = NULL;
+
unsigned int total_tracks;
unsigned int number;
unsigned int duration;
- g_variant_get(parameters, "(&s&s&s&suuu)", &title,
- &artist, &album, &genre,
- &total_tracks, &number,
- &duration);
- memset(&metadata, 0x00, sizeof(media_metadata_attributes_t));
+ g_variant_get(parameters, "(@ay@ay@ay@ayuuu)",
+ &title, &artist, &album, &genre,
+ &total_tracks, &number, &duration);
- metadata.title = title;
- metadata.artist = artist;
- metadata.album = album;
- metadata.genre = genre;
+ metadata.title = g_variant_get_bytestring(title);
+ metadata.artist = g_variant_get_bytestring(artist);
+ metadata.album = g_variant_get_bytestring(album);
+ metadata.genre = g_variant_get_bytestring(genre);
metadata.total_tracks = total_tracks;
metadata.number = number;
metadata.duration = duration;
_bt_avrcp_event_cb(BLUETOOTH_EVENT_AVRCP_TRACK_CHANGED,
result, &metadata,
event_info->cb, event_info->user_data);
+
+ g_variant_unref(title);
+ g_variant_unref(artist);
+ g_variant_unref(album);
+ g_variant_unref(genre);
}
}
unsigned int total_track = 0;
unsigned int track_number = 0;
unsigned int playing_time = 0;
+ GVariant *title;
+ GVariant *artist;
+ GVariant *album;
+ GVariant *genre;
BT_INFO("+");
total_track = (unsigned int)(metadata->total_track);
track_number = (unsigned int)(metadata->track_number);
playing_time = (unsigned int)(metadata->playing_time);
+
+ title = g_variant_new_from_data((const GVariantType *)"ay",
+ metadata->title_info, MEDIA_ATTIRBUTE_STRING_LENGTH,
+ TRUE, NULL, NULL);
+ artist = g_variant_new_from_data((const GVariantType *)"ay",
+ metadata->artist_info, MEDIA_ATTIRBUTE_STRING_LENGTH,
+ TRUE, NULL, NULL);
+ album = g_variant_new_from_data((const GVariantType *)"ay",
+ metadata->album_info, MEDIA_ATTIRBUTE_STRING_LENGTH,
+ TRUE, NULL, NULL);
+ genre = g_variant_new_from_data((const GVariantType *)"ay",
+ metadata->genre_info, MEDIA_ATTIRBUTE_STRING_LENGTH,
+ TRUE, NULL, NULL);
+
/* Send AVRCP Target player track info changed event to application*/
- param = g_variant_new("(ssssuuu)",
- metadata->title_info,
- metadata->artist_info,
- metadata->album_info,
- metadata->genre_info,
- total_track,
- track_number,
- playing_time);
+ param = g_variant_new("(@ay@ay@ay@ayuuu)",
+ title, artist, album, genre,
+ total_track, track_number, playing_time);
BT_INFO("Total_track: %u, track_number: %u, playing_time: %u",
total_track, track_number, playing_time);