Loading media/java/android/media/AudioManager.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -3774,7 +3774,7 @@ public class AudioManager { /** @hide */ /** @hide */ public static final int RECORD_CONFIG_EVENT_UPDATE = 2; public static final int RECORD_CONFIG_EVENT_UPDATE = 2; /** @hide */ /** @hide */ public static final int RECORD_CONFIG_EVENT_DEATH = 3; public static final int RECORD_CONFIG_EVENT_RELEASE = 3; /** /** * keep in sync with frameworks/native/include/audiomanager/AudioManager.h * keep in sync with frameworks/native/include/audiomanager/AudioManager.h */ */ Loading media/java/android/media/IAudioService.aidl +2 −0 Original line number Original line Diff line number Diff line Loading @@ -64,6 +64,8 @@ interface IAudioService { oneway void recorderEvent(in int riid, in int event); oneway void recorderEvent(in int riid, in int event); oneway void releaseRecorder(in int riid); // Java-only methods below. // Java-only methods below. oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, Loading services/core/java/com/android/server/audio/AudioService.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -7071,6 +7071,13 @@ public class AudioService extends IAudioService.Stub mRecordMonitor.recorderEvent(riid, event); mRecordMonitor.recorderEvent(riid, event); } } /** * Stop tracking the recorder */ public void releaseRecorder(int riid) { mRecordMonitor.releaseRecorder(riid); } public void disableRingtoneSync(final int userId) { public void disableRingtoneSync(final int userId) { final int callingUserId = UserHandle.getCallingUserId(); final int callingUserId = UserHandle.getCallingUserId(); if (callingUserId != userId) { if (callingUserId != userId) { Loading services/core/java/com/android/server/audio/RecordingActivityMonitor.java +11 −8 Original line number Original line Diff line number Diff line Loading @@ -176,8 +176,11 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin dispatchCallbacks(updateSnapshot(configEvent, riid, null)); dispatchCallbacks(updateSnapshot(configEvent, riid, null)); } } void unregisterRecorder(int riid) { /** dispatchCallbacks(updateSnapshot(AudioManager.RECORD_CONFIG_EVENT_DEATH, riid, null)); * Stop tracking the recorder */ public void releaseRecorder(int riid) { dispatchCallbacks(updateSnapshot(AudioManager.RECORD_CONFIG_EVENT_RELEASE, riid, null)); } } private void dispatchCallbacks(List<AudioRecordingConfiguration> configs) { private void dispatchCallbacks(List<AudioRecordingConfiguration> configs) { Loading Loading @@ -246,7 +249,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin if (state.isActiveConfiguration()) { if (state.isActiveConfiguration()) { configChanged = true; configChanged = true; sEventLogger.log(new RecordingEvent( sEventLogger.log(new RecordingEvent( AudioManager.RECORD_CONFIG_EVENT_DEATH, AudioManager.RECORD_CONFIG_EVENT_RELEASE, state.getRiid(), state.getConfig())); state.getRiid(), state.getConfig())); } } it.remove(); it.remove(); Loading Loading @@ -396,7 +399,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin switch (event) { switch (event) { case AudioManager.RECORD_CONFIG_EVENT_START: case AudioManager.RECORD_CONFIG_EVENT_START: configChanged = state.setActive(true); configChanged = state.setActive(true); if (config != null) { // ??? Can remove ??? if (config != null) { configChanged = state.setConfig(config) || configChanged; configChanged = state.setConfig(config) || configChanged; } } break; break; Loading @@ -412,7 +415,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin mRecordStates.remove(stateIndex); mRecordStates.remove(stateIndex); } } break; break; case AudioManager.RECORD_CONFIG_EVENT_DEATH: case AudioManager.RECORD_CONFIG_EVENT_RELEASE: configChanged = state.isActiveConfiguration(); configChanged = state.isActiveConfiguration(); mRecordStates.remove(stateIndex); mRecordStates.remove(stateIndex); break; break; Loading Loading @@ -504,7 +507,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin } } public void binderDied() { public void binderDied() { sMonitor.unregisterRecorder(mRiid); sMonitor.releaseRecorder(mRiid); } } boolean init() { boolean init() { Loading Loading @@ -553,8 +556,8 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin return "update"; return "update"; case AudioManager.RECORD_CONFIG_EVENT_STOP: case AudioManager.RECORD_CONFIG_EVENT_STOP: return "stop"; return "stop"; case AudioManager.RECORD_CONFIG_EVENT_DEATH: case AudioManager.RECORD_CONFIG_EVENT_RELEASE: return "death"; return "release"; default: default: return "unknown (" + recEvent + ")"; return "unknown (" + recEvent + ")"; } } Loading Loading
media/java/android/media/AudioManager.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -3774,7 +3774,7 @@ public class AudioManager { /** @hide */ /** @hide */ public static final int RECORD_CONFIG_EVENT_UPDATE = 2; public static final int RECORD_CONFIG_EVENT_UPDATE = 2; /** @hide */ /** @hide */ public static final int RECORD_CONFIG_EVENT_DEATH = 3; public static final int RECORD_CONFIG_EVENT_RELEASE = 3; /** /** * keep in sync with frameworks/native/include/audiomanager/AudioManager.h * keep in sync with frameworks/native/include/audiomanager/AudioManager.h */ */ Loading
media/java/android/media/IAudioService.aidl +2 −0 Original line number Original line Diff line number Diff line Loading @@ -64,6 +64,8 @@ interface IAudioService { oneway void recorderEvent(in int riid, in int event); oneway void recorderEvent(in int riid, in int event); oneway void releaseRecorder(in int riid); // Java-only methods below. // Java-only methods below. oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, oneway void adjustSuggestedStreamVolume(int direction, int suggestedStreamType, int flags, Loading
services/core/java/com/android/server/audio/AudioService.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -7071,6 +7071,13 @@ public class AudioService extends IAudioService.Stub mRecordMonitor.recorderEvent(riid, event); mRecordMonitor.recorderEvent(riid, event); } } /** * Stop tracking the recorder */ public void releaseRecorder(int riid) { mRecordMonitor.releaseRecorder(riid); } public void disableRingtoneSync(final int userId) { public void disableRingtoneSync(final int userId) { final int callingUserId = UserHandle.getCallingUserId(); final int callingUserId = UserHandle.getCallingUserId(); if (callingUserId != userId) { if (callingUserId != userId) { Loading
services/core/java/com/android/server/audio/RecordingActivityMonitor.java +11 −8 Original line number Original line Diff line number Diff line Loading @@ -176,8 +176,11 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin dispatchCallbacks(updateSnapshot(configEvent, riid, null)); dispatchCallbacks(updateSnapshot(configEvent, riid, null)); } } void unregisterRecorder(int riid) { /** dispatchCallbacks(updateSnapshot(AudioManager.RECORD_CONFIG_EVENT_DEATH, riid, null)); * Stop tracking the recorder */ public void releaseRecorder(int riid) { dispatchCallbacks(updateSnapshot(AudioManager.RECORD_CONFIG_EVENT_RELEASE, riid, null)); } } private void dispatchCallbacks(List<AudioRecordingConfiguration> configs) { private void dispatchCallbacks(List<AudioRecordingConfiguration> configs) { Loading Loading @@ -246,7 +249,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin if (state.isActiveConfiguration()) { if (state.isActiveConfiguration()) { configChanged = true; configChanged = true; sEventLogger.log(new RecordingEvent( sEventLogger.log(new RecordingEvent( AudioManager.RECORD_CONFIG_EVENT_DEATH, AudioManager.RECORD_CONFIG_EVENT_RELEASE, state.getRiid(), state.getConfig())); state.getRiid(), state.getConfig())); } } it.remove(); it.remove(); Loading Loading @@ -396,7 +399,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin switch (event) { switch (event) { case AudioManager.RECORD_CONFIG_EVENT_START: case AudioManager.RECORD_CONFIG_EVENT_START: configChanged = state.setActive(true); configChanged = state.setActive(true); if (config != null) { // ??? Can remove ??? if (config != null) { configChanged = state.setConfig(config) || configChanged; configChanged = state.setConfig(config) || configChanged; } } break; break; Loading @@ -412,7 +415,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin mRecordStates.remove(stateIndex); mRecordStates.remove(stateIndex); } } break; break; case AudioManager.RECORD_CONFIG_EVENT_DEATH: case AudioManager.RECORD_CONFIG_EVENT_RELEASE: configChanged = state.isActiveConfiguration(); configChanged = state.isActiveConfiguration(); mRecordStates.remove(stateIndex); mRecordStates.remove(stateIndex); break; break; Loading Loading @@ -504,7 +507,7 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin } } public void binderDied() { public void binderDied() { sMonitor.unregisterRecorder(mRiid); sMonitor.releaseRecorder(mRiid); } } boolean init() { boolean init() { Loading Loading @@ -553,8 +556,8 @@ public final class RecordingActivityMonitor implements AudioSystem.AudioRecordin return "update"; return "update"; case AudioManager.RECORD_CONFIG_EVENT_STOP: case AudioManager.RECORD_CONFIG_EVENT_STOP: return "stop"; return "stop"; case AudioManager.RECORD_CONFIG_EVENT_DEATH: case AudioManager.RECORD_CONFIG_EVENT_RELEASE: return "death"; return "release"; default: default: return "unknown (" + recEvent + ")"; return "unknown (" + recEvent + ")"; } } Loading