diff options
| author | 2020-12-22 18:10:43 +0000 | |
|---|---|---|
| committer | 2020-12-22 18:10:43 +0000 | |
| commit | c63a640587c65bf49e2a0e1e9cd1f2877630ba71 (patch) | |
| tree | c4706c8249398c4bba8b017f8df1260f8eef1ae0 | |
| parent | f17961cdd3a66dcfb16e45c244c31fff7b3bf7d6 (diff) | |
| parent | 51bb4b487f2079ca44ef862d69d271ea5d8b457d (diff) | |
Merge "Revert "Added update device info playback configuration""
| -rw-r--r-- | core/api/current.txt | 1 | ||||
| -rw-r--r-- | media/java/android/media/AudioPlaybackConfiguration.java | 65 | ||||
| -rw-r--r-- | media/java/android/media/AudioTrack.java | 27 | ||||
| -rw-r--r-- | media/java/android/media/HwAudioSource.java | 26 | ||||
| -rwxr-xr-x | media/java/android/media/IAudioService.aidl | 2 | ||||
| -rw-r--r-- | media/java/android/media/MediaPlayer.java | 87 | ||||
| -rw-r--r-- | media/java/android/media/PlayerBase.java | 39 | ||||
| -rw-r--r-- | media/java/android/media/SoundPool.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 10 | ||||
| -rw-r--r-- | services/core/java/com/android/server/audio/PlaybackActivityMonitor.java | 28 |
10 files changed, 45 insertions, 243 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 2cde77e6914a..897db39d25de 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -19932,7 +19932,6 @@ package android.media { public final class AudioPlaybackConfiguration implements android.os.Parcelable { method public int describeContents(); method public android.media.AudioAttributes getAudioAttributes(); - method @Nullable public android.media.AudioDeviceInfo getAudioDevice(); method public void writeToParcel(android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.media.AudioPlaybackConfiguration> CREATOR; } diff --git a/media/java/android/media/AudioPlaybackConfiguration.java b/media/java/android/media/AudioPlaybackConfiguration.java index b9f449c20677..17305a501cd0 100644 --- a/media/java/android/media/AudioPlaybackConfiguration.java +++ b/media/java/android/media/AudioPlaybackConfiguration.java @@ -21,7 +21,6 @@ import static android.media.AudioAttributes.ALLOW_CAPTURE_BY_NONE; import android.annotation.IntDef; import android.annotation.NonNull; -import android.annotation.Nullable; import android.annotation.SystemApi; import android.os.Binder; import android.os.IBinder; @@ -48,8 +47,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { public static final int PLAYER_PIID_INVALID = -1; /** @hide */ public static final int PLAYER_UPID_INVALID = -1; - /** @hide */ - public static final int PLAYER_DEVICEID_INVALID = 0; // information about the implementation /** @@ -161,11 +158,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { */ @SystemApi public static final int PLAYER_STATE_STOPPED = 4; - /** - * @hide - * The state used to update device id, does not actually change the state of the player - */ - public static final int PLAYER_UPDATE_DEVICE_ID = 5; /** @hide */ @IntDef({ @@ -174,8 +166,7 @@ public final class AudioPlaybackConfiguration implements Parcelable { PLAYER_STATE_IDLE, PLAYER_STATE_STARTED, PLAYER_STATE_PAUSED, - PLAYER_STATE_STOPPED, - PLAYER_UPDATE_DEVICE_ID + PLAYER_STATE_STOPPED }) @Retention(RetentionPolicy.SOURCE) public @interface PlayerState {} @@ -193,8 +184,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { private int mPlayerState; private AudioAttributes mPlayerAttr; // never null - private int mDeviceId; - /** * Never use without initializing parameters afterwards */ @@ -212,7 +201,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { mPlayerType = pic.mPlayerType; mClientUid = uid; mClientPid = pid; - mDeviceId = PLAYER_DEVICEID_INVALID; mPlayerState = PLAYER_STATE_IDLE; mPlayerAttr = pic.mAttributes; if ((sPlayerDeathMonitor != null) && (pic.mIPlayer != null)) { @@ -253,7 +241,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { in.mPlayerAttr.getAllowedCapturePolicy() == ALLOW_CAPTURE_BY_ALL ? ALLOW_CAPTURE_BY_ALL : ALLOW_CAPTURE_BY_NONE) .build(); - anonymCopy.mDeviceId = in.mDeviceId; // anonymized data anonymCopy.mPlayerType = PLAYER_TYPE_UNKNOWN; anonymCopy.mClientUid = PLAYER_UPID_INVALID; @@ -291,25 +278,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { } /** - * Returns information about the {@link AudioDeviceInfo} used for this playback. - * @return the audio playback device or null if the device is not available at the time of query - */ - public @Nullable AudioDeviceInfo getAudioDevice() { - if (mDeviceId == PLAYER_DEVICEID_INVALID) { - return null; - } - // TODO(175802592): change this to AudioManager.getDeviceForPortId() when available - AudioDeviceInfo[] devices = - AudioManager.getDevicesStatic(AudioManager.GET_DEVICES_OUTPUTS); - for (int i = 0; i < devices.length; i++) { - if (devices[i].getId() == mDeviceId) { - return devices[i]; - } - } - return null; - } - - /** * @hide * Return the type of player linked to this configuration. * <br>Note that player types not exposed in the system API will be represented as @@ -391,29 +359,13 @@ public final class AudioPlaybackConfiguration implements Parcelable { * @hide * Handle a player state change * @param event - * @param deviceId active device id or {@Code PLAYER_DEVICEID_INVALID} - * <br>Note device id is valid for {@code PLAYER_UPDATE_DEVICE_ID} or - * <br>{@code PLAYER_STATE_STARTED} events, as the device id will be reset to none when - * <br>pausing or stopping playback. It will be set to active device when playback starts or - * <br>it will be changed when PLAYER_UPDATE_DEVICE_ID is sent. The latter can happen if the - * <br>device changes in the middle of playback. * @return true if the state changed, false otherwise */ - public boolean handleStateEvent(int event, int deviceId) { - boolean changed = false; + public boolean handleStateEvent(int event) { + final boolean changed; synchronized (this) { - - // Do not update if it is only device id update - if (event != PLAYER_UPDATE_DEVICE_ID) { - changed = (mPlayerState != event); - mPlayerState = event; - } - - if (event == PLAYER_STATE_STARTED || event == PLAYER_UPDATE_DEVICE_ID) { - changed = changed || (mDeviceId != deviceId); - mDeviceId = deviceId; - } - + changed = (mPlayerState != event); + mPlayerState = event; if (changed && (event == PLAYER_STATE_RELEASED) && (mIPlayerShell != null)) { mIPlayerShell.release(); mIPlayerShell = null; @@ -484,7 +436,7 @@ public final class AudioPlaybackConfiguration implements Parcelable { @Override public int hashCode() { - return Objects.hash(mPlayerIId, mDeviceId, mPlayerType, mClientUid, mClientPid); + return Objects.hash(mPlayerIId, mPlayerType, mClientUid, mClientPid); } @Override @@ -495,7 +447,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(mPlayerIId); - dest.writeInt(mDeviceId); dest.writeInt(mPlayerType); dest.writeInt(mClientUid); dest.writeInt(mClientPid); @@ -510,7 +461,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { private AudioPlaybackConfiguration(Parcel in) { mPlayerIId = in.readInt(); - mDeviceId = in.readInt(); mPlayerType = in.readInt(); mClientUid = in.readInt(); mClientPid = in.readInt(); @@ -528,7 +478,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { AudioPlaybackConfiguration that = (AudioPlaybackConfiguration) o; return ((mPlayerIId == that.mPlayerIId) - && (mDeviceId == that.mDeviceId) && (mPlayerType == that.mPlayerType) && (mClientUid == that.mClientUid) && (mClientPid == that.mClientPid)); @@ -537,7 +486,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { @Override public String toString() { return "AudioPlaybackConfiguration piid:" + mPlayerIId - + " deviceId:" + mDeviceId + " type:" + toLogFriendlyPlayerType(mPlayerType) + " u/pid:" + mClientUid + "/" + mClientPid + " state:" + toLogFriendlyPlayerState(mPlayerState) @@ -623,7 +571,6 @@ public final class AudioPlaybackConfiguration implements Parcelable { case PLAYER_STATE_STARTED: return "started"; case PLAYER_STATE_PAUSED: return "paused"; case PLAYER_STATE_STOPPED: return "stopped"; - case PLAYER_UPDATE_DEVICE_ID: return "device"; default: return "unknown player state - FIXME"; } diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index e9a18e982ccc..e3b6fba18eb0 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -1824,7 +1824,6 @@ public class AudioTrack extends PlayerBase @Override protected void finalize() { - tryToDisableNativeRoutingCallback(); baseRelease(); native_finalize(); } @@ -2718,15 +2717,9 @@ public class AudioTrack extends PlayerBase } private void startImpl() { - synchronized (mRoutingChangeListeners) { - if (!mEnableSelfRoutingMonitor) { - testEnableNativeRoutingCallbacksLocked(); - mEnableSelfRoutingMonitor = true; - } - } synchronized(mPlayStateLock) { + baseStart(); native_start(); - baseStart(native_getRoutedDeviceId()); if (mPlayState == PLAYSTATE_PAUSED_STOPPING) { mPlayState = PLAYSTATE_STOPPING; } else { @@ -2764,7 +2757,6 @@ public class AudioTrack extends PlayerBase mPlayStateLock.notify(); } } - tryToDisableNativeRoutingCallback(); } /** @@ -3504,21 +3496,12 @@ public class AudioTrack extends PlayerBase return null; } - private void tryToDisableNativeRoutingCallback() { - synchronized (mRoutingChangeListeners) { - if (mEnableSelfRoutingMonitor) { - mEnableSelfRoutingMonitor = false; - testDisableNativeRoutingCallbacksLocked(); - } - } - } - /* * Call BEFORE adding a routing callback handler. */ @GuardedBy("mRoutingChangeListeners") private void testEnableNativeRoutingCallbacksLocked() { - if (mRoutingChangeListeners.size() == 0 && !mEnableSelfRoutingMonitor) { + if (mRoutingChangeListeners.size() == 0) { native_enableDeviceCallback(); } } @@ -3528,7 +3511,7 @@ public class AudioTrack extends PlayerBase */ @GuardedBy("mRoutingChangeListeners") private void testDisableNativeRoutingCallbacksLocked() { - if (mRoutingChangeListeners.size() == 0 && !mEnableSelfRoutingMonitor) { + if (mRoutingChangeListeners.size() == 0) { native_disableDeviceCallback(); } } @@ -3545,9 +3528,6 @@ public class AudioTrack extends PlayerBase private ArrayMap<AudioRouting.OnRoutingChangedListener, NativeRoutingEventHandlerDelegate> mRoutingChangeListeners = new ArrayMap<>(); - @GuardedBy("mRoutingChangeListeners") - private boolean mEnableSelfRoutingMonitor; - /** * Adds an {@link AudioRouting.OnRoutingChangedListener} to receive notifications of routing * changes on this AudioTrack. @@ -3647,7 +3627,6 @@ public class AudioTrack extends PlayerBase */ private void broadcastRoutingChange() { AudioManager.resetAudioPortGeneration(); - baseUpdateDeviceId(getRoutedDevice()); synchronized (mRoutingChangeListeners) { for (NativeRoutingEventHandlerDelegate delegate : mRoutingChangeListeners.values()) { delegate.notifyClient(); diff --git a/media/java/android/media/HwAudioSource.java b/media/java/android/media/HwAudioSource.java index bbf632a406ec..01a02f1d9f05 100644 --- a/media/java/android/media/HwAudioSource.java +++ b/media/java/android/media/HwAudioSource.java @@ -22,8 +22,6 @@ import android.annotation.SystemApi; import com.android.internal.util.Preconditions; -import java.util.ArrayList; - /** * The HwAudioSource represents the audio playback directly from a source audio device. * It currently supports {@link HwAudioSource#start()} and {@link HwAudioSource#stop()} only @@ -132,32 +130,10 @@ public class HwAudioSource extends PlayerBase { */ public void start() { Preconditions.checkState(!isPlaying(), "HwAudioSource is currently playing"); + baseStart(); mNativeHandle = AudioSystem.startAudioSource( mAudioDeviceInfo.getPort().activeConfig(), mAudioAttributes); - // FIXME: b/174876389 clean up device id reporting - baseStart(getDeviceId()); - } - - private int getDeviceId() { - ArrayList<AudioPatch> patches = new ArrayList<AudioPatch>(); - if (AudioManager.listAudioPatches(patches) != AudioManager.SUCCESS) { - return 0; - } - - for (int i = 0; i < patches.size(); i++) { - AudioPatch patch = patches.get(i); - AudioPortConfig[] sources = patch.sources(); - AudioPortConfig[] sinks = patch.sinks(); - if ((sources != null) && (sources.length > 0)) { - for (int c = 0; c < sources.length; c++) { - if (sources[c].port().id() == mAudioDeviceInfo.getId()) { - return sinks[c].port().id(); - } - } - } - } - return 0; } /** diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl index b6bb3a3df38b..bad0d19b723e 100755 --- a/media/java/android/media/IAudioService.aidl +++ b/media/java/android/media/IAudioService.aidl @@ -63,7 +63,7 @@ interface IAudioService { oneway void playerAttributes(in int piid, in AudioAttributes attr); - oneway void playerEvent(in int piid, in int event, in int deviceId); + oneway void playerEvent(in int piid, in int event); oneway void releasePlayer(in int piid); diff --git a/media/java/android/media/MediaPlayer.java b/media/java/android/media/MediaPlayer.java index ceac2c9d5e05..f8311cd580a9 100644 --- a/media/java/android/media/MediaPlayer.java +++ b/media/java/android/media/MediaPlayer.java @@ -1352,6 +1352,7 @@ public class MediaPlayer extends PlayerBase } private void startImpl() { + baseStart(); stayAwake(true); _start(); } @@ -1377,6 +1378,7 @@ public class MediaPlayer extends PlayerBase public void stop() throws IllegalStateException { stayAwake(false); _stop(); + baseStop(); } private native void _stop() throws IllegalStateException; @@ -1390,6 +1392,7 @@ public class MediaPlayer extends PlayerBase public void pause() throws IllegalStateException { stayAwake(false); _pause(); + basePause(); } private native void _pause() throws IllegalStateException; @@ -1494,60 +1497,13 @@ public class MediaPlayer extends PlayerBase return null; } - - /** - * Sends device list change notification to all listeners. - */ - private void broadcastRoutingChange() { - AudioManager.resetAudioPortGeneration(); - synchronized (mRoutingChangeListeners) { - // Prevent the case where an event is triggered by registering a routing change - // listener via the media player. - if (mEnableSelfRoutingMonitor) { - baseUpdateDeviceId(getRoutedDevice()); - } - for (NativeRoutingEventHandlerDelegate delegate - : mRoutingChangeListeners.values()) { - delegate.notifyClient(); - } - } - } - /* - * Call BEFORE adding a routing callback handler. + * Call BEFORE adding a routing callback handler or AFTER removing a routing callback handler. */ @GuardedBy("mRoutingChangeListeners") - private void testEnableNativeRoutingCallbacksLocked() { - if (mRoutingChangeListeners.size() == 0 && !mEnableSelfRoutingMonitor) { - native_enableDeviceCallback(true); - } - } - - private void tryToEnableNativeRoutingCallback() { - synchronized (mRoutingChangeListeners) { - if (!mEnableSelfRoutingMonitor) { - testEnableNativeRoutingCallbacksLocked(); - mEnableSelfRoutingMonitor = true; - } - } - } - - private void tryToDisableNativeRoutingCallback() { - synchronized (mRoutingChangeListeners) { - if (mEnableSelfRoutingMonitor) { - mEnableSelfRoutingMonitor = false; - testDisableNativeRoutingCallbacksLocked(); - } - } - } - - /* - * Call AFTER removing a routing callback handler. - */ - @GuardedBy("mRoutingChangeListeners") - private void testDisableNativeRoutingCallbacksLocked() { - if (mRoutingChangeListeners.size() == 0 && !mEnableSelfRoutingMonitor) { - native_enableDeviceCallback(false); + private void enableNativeRoutingCallbacksLocked(boolean enabled) { + if (mRoutingChangeListeners.size() == 0) { + native_enableDeviceCallback(enabled); } } @@ -1560,9 +1516,6 @@ public class MediaPlayer extends PlayerBase private ArrayMap<AudioRouting.OnRoutingChangedListener, NativeRoutingEventHandlerDelegate> mRoutingChangeListeners = new ArrayMap<>(); - @GuardedBy("mRoutingChangeListeners") - private boolean mEnableSelfRoutingMonitor; - /** * Adds an {@link AudioRouting.OnRoutingChangedListener} to receive notifications of routing * changes on this MediaPlayer. @@ -1576,7 +1529,7 @@ public class MediaPlayer extends PlayerBase Handler handler) { synchronized (mRoutingChangeListeners) { if (listener != null && !mRoutingChangeListeners.containsKey(listener)) { - testEnableNativeRoutingCallbacksLocked(); + enableNativeRoutingCallbacksLocked(true); mRoutingChangeListeners.put( listener, new NativeRoutingEventHandlerDelegate(this, listener, handler != null ? handler : mEventHandler)); @@ -1595,8 +1548,8 @@ public class MediaPlayer extends PlayerBase synchronized (mRoutingChangeListeners) { if (mRoutingChangeListeners.containsKey(listener)) { mRoutingChangeListeners.remove(listener); + enableNativeRoutingCallbacksLocked(false); } - testDisableNativeRoutingCallbacksLocked(); } } @@ -3348,7 +3301,6 @@ public class MediaPlayer extends PlayerBase @Override protected void finalize() { - tryToDisableNativeRoutingCallback(); baseRelease(); native_finalize(); } @@ -3463,8 +3415,6 @@ public class MediaPlayer extends PlayerBase case MEDIA_STOPPED: { - tryToDisableNativeRoutingCallback(); - baseStop(); TimeProvider timeProvider = mTimeProvider; if (timeProvider != null) { timeProvider.onStopped(); @@ -3473,16 +3423,8 @@ public class MediaPlayer extends PlayerBase break; case MEDIA_STARTED: - { - baseStart(native_getRoutedDeviceId()); - tryToEnableNativeRoutingCallback(); - } - // fall through case MEDIA_PAUSED: { - if (msg.what == MEDIA_PAUSED) { - basePause(); - } TimeProvider timeProvider = mTimeProvider; if (timeProvider != null) { timeProvider.onPaused(msg.what == MEDIA_PAUSED); @@ -3648,8 +3590,14 @@ public class MediaPlayer extends PlayerBase break; case MEDIA_AUDIO_ROUTING_CHANGED: - broadcastRoutingChange(); - return; + AudioManager.resetAudioPortGeneration(); + synchronized (mRoutingChangeListeners) { + for (NativeRoutingEventHandlerDelegate delegate + : mRoutingChangeListeners.values()) { + delegate.notifyClient(); + } + } + return; case MEDIA_TIME_DISCONTINUITY: final OnMediaTimeDiscontinuityListener mediaTimeListener; @@ -3855,7 +3803,6 @@ public class MediaPlayer extends PlayerBase @Override public void onCompletion(MediaPlayer mp) { baseStop(); - tryToDisableNativeRoutingCallback(); } }; diff --git a/media/java/android/media/PlayerBase.java b/media/java/android/media/PlayerBase.java index 58ae279d4df1..da69c6cbbb5c 100644 --- a/media/java/android/media/PlayerBase.java +++ b/media/java/android/media/PlayerBase.java @@ -90,8 +90,6 @@ public abstract class PlayerBase { private float mPanMultiplierR = 1.0f; @GuardedBy("mLock") private float mVolMultiplier = 1.0f; - @GuardedBy("mLock") - private int mDeviceId; /** * Constructor. Must be given audio attributes, as they are required for AppOps. @@ -154,35 +152,14 @@ public abstract class PlayerBase { } } - void baseUpdateDeviceId(@Nullable AudioDeviceInfo deviceInfo) { - int deviceId = 0; - if (deviceInfo != null) { - deviceId = deviceInfo.getId(); - } - int piid; - synchronized (mLock) { - piid = mPlayerIId; - mDeviceId = deviceId; - } - try { - getService().playerEvent(piid, - AudioPlaybackConfiguration.PLAYER_UPDATE_DEVICE_ID, deviceId); - } catch (RemoteException e) { - Log.e(TAG, "Error talking to audio service, " - + deviceId - + " device id will not be tracked for piid=" + piid, e); - } - } - - private void updateState(int state, int deviceId) { + private void updateState(int state) { final int piid; synchronized (mLock) { mState = state; piid = mPlayerIId; - mDeviceId = deviceId; } try { - getService().playerEvent(piid, state, deviceId); + getService().playerEvent(piid, state); } catch (RemoteException e) { Log.e(TAG, "Error talking to audio service, " + AudioPlaybackConfiguration.toLogFriendlyPlayerState(state) @@ -190,11 +167,9 @@ public abstract class PlayerBase { } } - void baseStart(int deviceId) { - if (DEBUG) { - Log.v(TAG, "baseStart() piid=" + mPlayerIId + " deviceId=" + deviceId); - } - updateState(AudioPlaybackConfiguration.PLAYER_STATE_STARTED, deviceId); + void baseStart() { + if (DEBUG) { Log.v(TAG, "baseStart() piid=" + mPlayerIId); } + updateState(AudioPlaybackConfiguration.PLAYER_STATE_STARTED); synchronized (mLock) { if (isRestricted_sync()) { playerSetVolume(true/*muting*/,0, 0); @@ -216,12 +191,12 @@ public abstract class PlayerBase { void basePause() { if (DEBUG) { Log.v(TAG, "basePause() piid=" + mPlayerIId); } - updateState(AudioPlaybackConfiguration.PLAYER_STATE_PAUSED, 0); + updateState(AudioPlaybackConfiguration.PLAYER_STATE_PAUSED); } void baseStop() { if (DEBUG) { Log.v(TAG, "baseStop() piid=" + mPlayerIId); } - updateState(AudioPlaybackConfiguration.PLAYER_STATE_STOPPED, 0); + updateState(AudioPlaybackConfiguration.PLAYER_STATE_STOPPED); } void baseSetPan(float pan) { diff --git a/media/java/android/media/SoundPool.java b/media/java/android/media/SoundPool.java index 797caf36203b..3f685a4c934e 100644 --- a/media/java/android/media/SoundPool.java +++ b/media/java/android/media/SoundPool.java @@ -303,8 +303,7 @@ public class SoundPool extends PlayerBase { */ public final int play(int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) { - // FIXME: b/174876164 implement device id for soundpool - baseStart(0); + baseStart(); return _play(soundID, leftVolume, rightVolume, priority, loop, rate); } diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 4444de0c00c4..ada67b1d59af 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -8906,14 +8906,8 @@ public class AudioService extends IAudioService.Stub mPlaybackMonitor.playerAttributes(piid, attr, Binder.getCallingUid()); } - /** - * Update player event - * @param piid Player id to update - * @param event The new player event - * @param deviceId The new player device id - */ - public void playerEvent(int piid, int event, int deviceId) { - mPlaybackMonitor.playerEvent(piid, event, deviceId, Binder.getCallingUid()); + public void playerEvent(int piid, int event) { + mPlaybackMonitor.playerEvent(piid, event, Binder.getCallingUid()); } public void playerHasOpPlayAudio(int piid, boolean hasOpPlayAudio) { diff --git a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java index 36c67cdbac4b..a5778836aa6e 100644 --- a/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java +++ b/services/core/java/com/android/server/audio/PlaybackActivityMonitor.java @@ -233,25 +233,15 @@ public final class PlaybackActivityMonitor } } - /** - * Update player event - * @param piid Player id to update - * @param event The new player event - * @param deviceId The new player device id - * @param binderUid Calling binder uid - */ - public void playerEvent(int piid, int event, int deviceId, int binderUid) { - if (DEBUG) { - Log.v(TAG, String.format("playerEvent(piid=%d, deviceId=%d, event=%d)", - piid, deviceId, event)); - } + public void playerEvent(int piid, int event, int binderUid) { + if (DEBUG) { Log.v(TAG, String.format("playerEvent(piid=%d, event=%d)", piid, event)); } final boolean change; synchronized(mPlayerLock) { final AudioPlaybackConfiguration apc = mPlayers.get(new Integer(piid)); if (apc == null) { return; } - sEventLogger.log(new PlayerEvent(piid, event, deviceId)); + sEventLogger.log(new PlayerEvent(piid, event)); if (event == AudioPlaybackConfiguration.PLAYER_STATE_STARTED) { for (Integer uidInteger: mBannedUids) { if (checkBanPlayer(apc, uidInteger.intValue())) { @@ -269,7 +259,7 @@ public final class PlaybackActivityMonitor if (checkConfigurationCaller(piid, apc, binderUid)) { //TODO add generation counter to only update to the latest state checkVolumeForPrivilegedAlarm(apc, event); - change = apc.handleStateEvent(event, deviceId); + change = apc.handleStateEvent(event); } else { Log.e(TAG, "Error handling event " + event); change = false; @@ -299,8 +289,7 @@ public final class PlaybackActivityMonitor mPlayers.remove(new Integer(piid)); mDuckingManager.removeReleased(apc); checkVolumeForPrivilegedAlarm(apc, AudioPlaybackConfiguration.PLAYER_STATE_RELEASED); - change = apc.handleStateEvent(AudioPlaybackConfiguration.PLAYER_STATE_RELEASED, - AudioPlaybackConfiguration.PLAYER_DEVICEID_INVALID); + change = apc.handleStateEvent(AudioPlaybackConfiguration.PLAYER_STATE_RELEASED); } } if (change) { @@ -879,19 +868,16 @@ public final class PlaybackActivityMonitor // only keeping the player interface ID as it uniquely identifies the player in the event final int mPlayerIId; final int mState; - final int mDeviceId; - PlayerEvent(int piid, int state, int deviceId) { + PlayerEvent(int piid, int state) { mPlayerIId = piid; mState = state; - mDeviceId = deviceId; } @Override public String eventToString() { return new StringBuilder("player piid:").append(mPlayerIId).append(" state:") - .append(AudioPlaybackConfiguration.toLogFriendlyPlayerState(mState)) - .append(" DeviceId:").append(mDeviceId).toString(); + .append(AudioPlaybackConfiguration.toLogFriendlyPlayerState(mState)).toString(); } } |