diff options
author | Gaurav Asati <gasati@codeaurora.org> | 2013-11-06 17:21:53 +0530 |
---|---|---|
committer | Gaurav Asati <gasati@codeaurora.org> | 2013-11-13 16:48:53 +0530 |
commit | 666623f5479f0fe4374183f55b49b917d07efed5 (patch) | |
tree | 05dd5c762d9e85308fd0843e6e926671633e0320 /src/com/android/bluetooth/a2dp/Avrcp.java | |
parent | 30143f7ed5a38eed3581f5e3418acbf70b5d558d (diff) | |
download | android_packages_apps_Bluetooth-666623f5479f0fe4374183f55b49b917d07efed5.tar.gz android_packages_apps_Bluetooth-666623f5479f0fe4374183f55b49b917d07efed5.tar.bz2 android_packages_apps_Bluetooth-666623f5479f0fe4374183f55b49b917d07efed5.zip |
Bluetooth: Update Element attributes response.
Add track number, genre and total number of track info in
meta data when requested by remote in element attributes.
Change-Id: I8f8224490f30185d387fc5b69fffce3559538f7f
CRs-Fixed: 568930
Diffstat (limited to 'src/com/android/bluetooth/a2dp/Avrcp.java')
-rw-r--r--[-rwxr-xr-x] | src/com/android/bluetooth/a2dp/Avrcp.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/com/android/bluetooth/a2dp/Avrcp.java b/src/com/android/bluetooth/a2dp/Avrcp.java index 2bd2d3d21..5c126c161 100755..100644 --- a/src/com/android/bluetooth/a2dp/Avrcp.java +++ b/src/com/android/bluetooth/a2dp/Avrcp.java @@ -898,16 +898,20 @@ final class Avrcp { private String artist; private String trackTitle; private String albumTitle; + private String genre; + private long tracknum; public Metadata() { artist = null; trackTitle = null; albumTitle = null; + genre = null; + tracknum = 0; } public String toString() { return "Metadata[artist=" + artist + " trackTitle=" + trackTitle + " albumTitle=" + - albumTitle + "]"; + albumTitle + " genre=" + genre + " tracknum=" + Long.toString(tracknum) + "]"; } } @@ -952,6 +956,10 @@ final class Avrcp { mMetadata.artist = getMdString(data, MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST); mMetadata.trackTitle = getMdString(data, MediaMetadataRetriever.METADATA_KEY_TITLE); mMetadata.albumTitle = getMdString(data, MediaMetadataRetriever.METADATA_KEY_ALBUM); + mMetadata.genre = getMdString(data, MediaMetadataRetriever.METADATA_KEY_GENRE); + mMetadata.tracknum = getMdLong(data, MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER); + + Log.v(TAG,"mMetadata.toString() = " + mMetadata.toString()); if (mMediaPlayers.size() > 0) { final Iterator<MediaPlayerInfo> rccIterator = mMediaPlayers.iterator(); @@ -966,6 +974,8 @@ final class Avrcp { } if (!oldMetadata.equals(mMetadata.toString())) { updateTrackNumber(); + Log.v(TAG,"new mMetadata, mTrackNumber update to " + mTrackNumber); + if (mTrackChangedNT == NOTIFICATION_TYPE_INTERIM) { mTrackChangedNT = NOTIFICATION_TYPE_CHANGED; sendTrackChangedRsp(); @@ -1219,7 +1229,7 @@ final class Avrcp { If no track is currently selected, then return 0xFFFFFFFFFFFFFFFF in the interim response */ if (mCurrentPlayState == RemoteControlClient.PLAYSTATE_PLAYING) - TrackNumberRsp = mTrackNumber ; + TrackNumberRsp = mMetadata.tracknum ; /* track is stored in big endian format */ for (int i = 0; i < TRACK_ID_SIZE; ++i) { track[i] = (byte) (TrackNumberRsp >> (56 - 8 * i)); @@ -1273,6 +1283,17 @@ final class Avrcp { } break; + case MEDIA_ATTR_TRACK_NUM: + attrStr = Long.toString(mMetadata.tracknum); + break; + + case MEDIA_ATTR_NUM_TRACKS: + attrStr = Long.toString(mTrackNumber); + break; + + case MEDIA_ATTR_GENRE: + attrStr = mMetadata.genre; + break; } if (attrStr == null) { attrStr = new String(); |