summaryrefslogtreecommitdiffstats
path: root/src/com/android/bluetooth/a2dp/Avrcp.java
diff options
context:
space:
mode:
authorGaurav Asati <gasati@codeaurora.org>2013-11-06 17:21:53 +0530
committerGaurav Asati <gasati@codeaurora.org>2013-11-13 16:48:53 +0530
commit666623f5479f0fe4374183f55b49b917d07efed5 (patch)
tree05dd5c762d9e85308fd0843e6e926671633e0320 /src/com/android/bluetooth/a2dp/Avrcp.java
parent30143f7ed5a38eed3581f5e3418acbf70b5d558d (diff)
downloadandroid_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.java25
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();