diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2009-12-10 16:58:35 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-12-10 16:58:35 -0800 |
commit | 899858a39647803c0cb506d2320fdaf2e4d3b8b9 (patch) | |
tree | afdd725eeec7ec04bd261d330e3de931500c9e34 /media/java | |
parent | b62954b66542e3e2654d97a81123c51805bceca7 (diff) | |
parent | 6608bd0d3af3f9c365b73f8b19d9ec0b7d5ee70b (diff) | |
download | frameworks_base-899858a39647803c0cb506d2320fdaf2e4d3b8b9.zip frameworks_base-899858a39647803c0cb506d2320fdaf2e4d3b8b9.tar.gz frameworks_base-899858a39647803c0cb506d2320fdaf2e4d3b8b9.tar.bz2 |
am 6608bd0d: am 86ed86d2: Merge change I0f73439a into eclair
Merge commit '6608bd0d3af3f9c365b73f8b19d9ec0b7d5ee70b' into eclair-mr2-plus-aosp
* commit '6608bd0d3af3f9c365b73f8b19d9ec0b7d5ee70b':
Partially fix bug 2111240 Detect docking / undocking event by reporting
Diffstat (limited to 'media/java')
-rw-r--r-- | media/java/android/media/AudioService.java | 12 | ||||
-rw-r--r-- | media/java/android/media/AudioSystem.java | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index 3b40612..b41f3e2 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -111,6 +111,9 @@ public class AudioService extends IAudioService.Stub { private Object mSettingsLock = new Object(); private boolean mMediaServerOk; + /** cached value of the BT dock address to recognize undocking events */ + private static String sBtDockAddress; + private SoundPool mSoundPool; private Object mSoundEffectsLock = new Object(); private static final int NUM_SOUNDPOOL_CHANNELS = 4; @@ -1399,6 +1402,10 @@ public class AudioService extends IAudioService.Stub { if (isConnected && state != BluetoothA2dp.STATE_CONNECTED && state != BluetoothA2dp.STATE_PLAYING) { + if (address.equals(sBtDockAddress)) { + Log.v(TAG, "Recognized undocking from BT dock"); + AudioSystem.setForceUse(AudioSystem.FOR_DOCK, AudioSystem.FORCE_NONE); + } AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, AudioSystem.DEVICE_STATE_UNAVAILABLE, address); @@ -1406,6 +1413,11 @@ public class AudioService extends IAudioService.Stub { } else if (!isConnected && (state == BluetoothA2dp.STATE_CONNECTED || state == BluetoothA2dp.STATE_PLAYING)) { + if (btDevice.isBluetoothDock()) { + Log.v(TAG, "Recognized docking to BT dock"); + sBtDockAddress = address; + AudioSystem.setForceUse(AudioSystem.FOR_DOCK, AudioSystem.FORCE_BT_DOCK); + } AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, AudioSystem.DEVICE_STATE_AVAILABLE, address); diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java index 9fe5328..9e9b259 100644 --- a/media/java/android/media/AudioSystem.java +++ b/media/java/android/media/AudioSystem.java @@ -271,12 +271,14 @@ public class AudioSystem public static final int FORCE_BT_SCO = 3; public static final int FORCE_BT_A2DP = 4; public static final int FORCE_WIRED_ACCESSORY = 5; + public static final int FORCE_BT_DOCK = 6; public static final int FORCE_DEFAULT = FORCE_NONE; // usage for serForceUse public static final int FOR_COMMUNICATION = 0; public static final int FOR_MEDIA = 1; public static final int FOR_RECORD = 2; + public static final int FOR_DOCK = 3; public static native int setDeviceConnectionState(int device, int state, String device_address); public static native int getDeviceConnectionState(int device, String device_address); |