diff options
author | beryl hou <beryl_hou@asus.com> | 2015-07-03 19:39:29 +0800 |
---|---|---|
committer | Andre Eisenbach <eisenbach@google.com> | 2015-07-24 17:48:49 +0000 |
commit | e8e870c24930f9b687572dbb80614e5aad6fbdfa (patch) | |
tree | c2a531f7286d5cbb8767cec3128051cab4ec2cec /src/com/android/bluetooth/avrcp/Avrcp.java | |
parent | ca8db07314e44453d807e6afeb8eb4eef303ee85 (diff) | |
download | android_packages_apps_Bluetooth-e8e870c24930f9b687572dbb80614e5aad6fbdfa.tar.gz android_packages_apps_Bluetooth-e8e870c24930f9b687572dbb80614e5aad6fbdfa.tar.bz2 android_packages_apps_Bluetooth-e8e870c24930f9b687572dbb80614e5aad6fbdfa.zip |
Return no track selected if no track is currently selected.
Fix to satisfy AVRCP 1.4 spec.
In EVENT_TRACK_CHANGED response request,
if a track is selected , then return 0x0 in the response.
if no track currently selected,then return 0xFFFFFFFFFFFFFFFF in the INTERIN response.
Bug: 22519285
Change-Id: Iaaae1d4acf918049d99c27d9ad98bde15242ade1
Diffstat (limited to 'src/com/android/bluetooth/avrcp/Avrcp.java')
-rwxr-xr-x | src/com/android/bluetooth/avrcp/Avrcp.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/com/android/bluetooth/avrcp/Avrcp.java b/src/com/android/bluetooth/avrcp/Avrcp.java index f514b6cdf..abc0b8481 100755 --- a/src/com/android/bluetooth/avrcp/Avrcp.java +++ b/src/com/android/bluetooth/avrcp/Avrcp.java @@ -673,9 +673,18 @@ public final class Avrcp { private void sendTrackChangedRsp() { byte[] track = new byte[TRACK_ID_SIZE]; + + /* If no track is currently selected, then return + 0xFFFFFFFFFFFFFFFF in the interim response */ + long trackNumberRsp = -1L; + + if (mCurrentPlayState == RemoteControlClient.PLAYSTATE_PLAYING) { + trackNumberRsp = mTrackNumber; + } + /* track is stored in big endian format */ for (int i = 0; i < TRACK_ID_SIZE; ++i) { - track[i] = (byte) (mTrackNumber >> (56 - 8 * i)); + track[i] = (byte) (trackNumberRsp >> (56 - 8 * i)); } registerNotificationRspTrackChangeNative(mTrackChangedNT, track); } |