diff options
Diffstat (limited to 'media/java')
-rw-r--r-- | media/java/android/media/AudioService.java | 19 | ||||
-rw-r--r-- | media/java/android/media/SoundPool.java | 40 |
2 files changed, 43 insertions, 16 deletions
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index 38a5b40..9b76f89 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -525,6 +525,7 @@ public class AudioService extends IAudioService.Stub { // Reference to BluetoothA2dp to query for AbsoluteVolume. private BluetoothA2dp mA2dp; + // lock always taken synchronized on mConnectedDevices private final Object mA2dpAvrcpLock = new Object(); // If absolute volume is supported in AVRCP device private boolean mAvrcpAbsVolSupported = false; @@ -2877,12 +2878,12 @@ public class AudioService extends IAudioService.Stub { List<BluetoothDevice> deviceList; switch(profile) { case BluetoothProfile.A2DP: - synchronized (mA2dpAvrcpLock) { - mA2dp = (BluetoothA2dp) proxy; - deviceList = mA2dp.getConnectedDevices(); - if (deviceList.size() > 0) { - btDevice = deviceList.get(0); - synchronized (mConnectedDevices) { + synchronized (mConnectedDevices) { + synchronized (mA2dpAvrcpLock) { + mA2dp = (BluetoothA2dp) proxy; + deviceList = mA2dp.getConnectedDevices(); + if (deviceList.size() > 0) { + btDevice = deviceList.get(0); int state = mA2dp.getConnectionState(btDevice); int delay = checkSendBecomingNoisyIntent( AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, @@ -2977,9 +2978,9 @@ public class AudioService extends IAudioService.Stub { public void onServiceDisconnected(int profile) { switch(profile) { case BluetoothProfile.A2DP: - synchronized (mA2dpAvrcpLock) { - mA2dp = null; - synchronized (mConnectedDevices) { + synchronized (mConnectedDevices) { + synchronized (mA2dpAvrcpLock) { + mA2dp = null; if (mConnectedDevices.containsKey(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP)) { makeA2dpDeviceUnavailableNow( mConnectedDevices.get(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP)); diff --git a/media/java/android/media/SoundPool.java b/media/java/android/media/SoundPool.java index 4f74bdd..32d5b82 100644 --- a/media/java/android/media/SoundPool.java +++ b/media/java/android/media/SoundPool.java @@ -543,11 +543,6 @@ public class SoundPool { public int load(String path, int priority) { - // pass network streams to player - if (path.startsWith("http:")) - return _load(path, priority); - - // try local path int id = 0; try { File f = new File(path); @@ -562,6 +557,7 @@ public class SoundPool { return id; } + @Override public int load(Context context, int resId, int priority) { AssetFileDescriptor afd = context.getResources().openRawResourceFd(resId); int id = 0; @@ -576,6 +572,7 @@ public class SoundPool { return id; } + @Override public int load(AssetFileDescriptor afd, int priority) { if (afd != null) { long len = afd.getLength(); @@ -588,16 +585,17 @@ public class SoundPool { } } + @Override public int load(FileDescriptor fd, long offset, long length, int priority) { return _load(fd, offset, length, priority); } - private native final int _load(String uri, int priority); - private native final int _load(FileDescriptor fd, long offset, long length, int priority); + @Override public native final boolean unload(int soundID); + @Override public final int play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) { if (isRestricted()) { @@ -620,16 +618,22 @@ public class SoundPool { } } + @Override public native final void pause(int streamID); + @Override public native final void resume(int streamID); + @Override public native final void autoPause(); + @Override public native final void autoResume(); + @Override public native final void stop(int streamID); + @Override public final void setVolume(int streamID, float leftVolume, float rightVolume) { if (isRestricted()) { return; @@ -639,16 +643,21 @@ public class SoundPool { private native final void _setVolume(int streamID, float leftVolume, float rightVolume); + @Override public void setVolume(int streamID, float volume) { setVolume(streamID, volume, volume); } + @Override public native final void setPriority(int streamID, int priority); + @Override public native final void setLoop(int streamID, int loop); + @Override public native final void setRate(int streamID, float rate); + @Override public void setOnLoadCompleteListener(SoundPool.OnLoadCompleteListener listener) { synchronized(mLock) { @@ -729,52 +738,69 @@ public class SoundPool { return 0; } + @Override public int load(Context context, int resId, int priority) { return 0; } + @Override public int load(AssetFileDescriptor afd, int priority) { return 0; } + @Override public int load(FileDescriptor fd, long offset, long length, int priority) { return 0; } + @Override public final boolean unload(int soundID) { return true; } + @Override public final int play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) { return 0; } + @Override public final void pause(int streamID) { } + @Override public final void resume(int streamID) { } + @Override public final void autoPause() { } + @Override public final void autoResume() { } + @Override public final void stop(int streamID) { } + @Override public final void setVolume(int streamID, float leftVolume, float rightVolume) { } + @Override public void setVolume(int streamID, float volume) { } + @Override public final void setPriority(int streamID, int priority) { } + @Override public final void setLoop(int streamID, int loop) { } + @Override public final void setRate(int streamID, float rate) { } + @Override public void setOnLoadCompleteListener(SoundPool.OnLoadCompleteListener listener) { } + @Override public final void release() { } } } |