Loading core/java/android/provider/Settings.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -2605,6 +2605,15 @@ public final class Settings { private static final Validator MICROPHONE_MUTE_VALIDATOR = sBooleanValidator; private static final Validator MICROPHONE_MUTE_VALIDATOR = sBooleanValidator; /** * Master mono (int 1 = mono, 0 = normal). * * @hide */ public static final String MASTER_MONO = "master_mono"; private static final Validator MASTER_MONO_VALIDATOR = sBooleanValidator; /** /** * Whether the notifications should use the ring volume (value of 1) or * Whether the notifications should use the ring volume (value of 1) or * a separate notification volume (value of 0). In most cases, users * a separate notification volume (value of 0). In most cases, users Loading Loading @@ -3372,6 +3381,7 @@ public final class Settings { PRIVATE_SETTINGS.add(VOLUME_MASTER); PRIVATE_SETTINGS.add(VOLUME_MASTER); PRIVATE_SETTINGS.add(VOLUME_MASTER_MUTE); PRIVATE_SETTINGS.add(VOLUME_MASTER_MUTE); PRIVATE_SETTINGS.add(MICROPHONE_MUTE); PRIVATE_SETTINGS.add(MICROPHONE_MUTE); PRIVATE_SETTINGS.add(MASTER_MONO); PRIVATE_SETTINGS.add(NOTIFICATIONS_USE_RING_VOLUME); PRIVATE_SETTINGS.add(NOTIFICATIONS_USE_RING_VOLUME); PRIVATE_SETTINGS.add(VIBRATE_IN_SILENT); PRIVATE_SETTINGS.add(VIBRATE_IN_SILENT); PRIVATE_SETTINGS.add(MEDIA_BUTTON_RECEIVER); PRIVATE_SETTINGS.add(MEDIA_BUTTON_RECEIVER); Loading Loading @@ -3450,6 +3460,7 @@ public final class Settings { VALIDATORS.put(VIBRATE_INPUT_DEVICES, VIBRATE_INPUT_DEVICES_VALIDATOR); VALIDATORS.put(VIBRATE_INPUT_DEVICES, VIBRATE_INPUT_DEVICES_VALIDATOR); VALIDATORS.put(VOLUME_MASTER_MUTE, VOLUME_MASTER_MUTE_VALIDATOR); VALIDATORS.put(VOLUME_MASTER_MUTE, VOLUME_MASTER_MUTE_VALIDATOR); VALIDATORS.put(MICROPHONE_MUTE, MICROPHONE_MUTE_VALIDATOR); VALIDATORS.put(MICROPHONE_MUTE, MICROPHONE_MUTE_VALIDATOR); VALIDATORS.put(MASTER_MONO, MASTER_MONO_VALIDATOR); VALIDATORS.put(NOTIFICATIONS_USE_RING_VOLUME, NOTIFICATIONS_USE_RING_VOLUME_VALIDATOR); VALIDATORS.put(NOTIFICATIONS_USE_RING_VOLUME, NOTIFICATIONS_USE_RING_VOLUME_VALIDATOR); VALIDATORS.put(VIBRATE_IN_SILENT, VIBRATE_IN_SILENT_VALIDATOR); VALIDATORS.put(VIBRATE_IN_SILENT, VIBRATE_IN_SILENT_VALIDATOR); VALIDATORS.put(MEDIA_BUTTON_RECEIVER, MEDIA_BUTTON_RECEIVER_VALIDATOR); VALIDATORS.put(MEDIA_BUTTON_RECEIVER, MEDIA_BUTTON_RECEIVER_VALIDATOR); Loading core/jni/android_media_AudioSystem.cpp +18 −0 Original line number Original line Diff line number Diff line Loading @@ -497,6 +497,22 @@ android_media_AudioSystem_getMasterMute(JNIEnv *env, jobject thiz) return mute; return mute; } } static jint android_media_AudioSystem_setMasterMono(JNIEnv *env, jobject thiz, jboolean mono) { return (jint) check_AudioSystem_Command(AudioSystem::setMasterMono(mono)); } static jboolean android_media_AudioSystem_getMasterMono(JNIEnv *env, jobject thiz) { bool mono; if (AudioSystem::getMasterMono(&mono) != NO_ERROR) { mono = false; } return mono; } static jint static jint android_media_AudioSystem_getDevicesForStream(JNIEnv *env, jobject thiz, jint stream) android_media_AudioSystem_getDevicesForStream(JNIEnv *env, jobject thiz, jint stream) { { Loading Loading @@ -1637,6 +1653,8 @@ static const JNINativeMethod gMethods[] = { {"getMasterVolume", "()F", (void *)android_media_AudioSystem_getMasterVolume}, {"getMasterVolume", "()F", (void *)android_media_AudioSystem_getMasterVolume}, {"setMasterMute", "(Z)I", (void *)android_media_AudioSystem_setMasterMute}, {"setMasterMute", "(Z)I", (void *)android_media_AudioSystem_setMasterMute}, {"getMasterMute", "()Z", (void *)android_media_AudioSystem_getMasterMute}, {"getMasterMute", "()Z", (void *)android_media_AudioSystem_getMasterMute}, {"setMasterMono", "(Z)I", (void *)android_media_AudioSystem_setMasterMono}, {"getMasterMono", "()Z", (void *)android_media_AudioSystem_getMasterMono}, {"getDevicesForStream", "(I)I", (void *)android_media_AudioSystem_getDevicesForStream}, {"getDevicesForStream", "(I)I", (void *)android_media_AudioSystem_getDevicesForStream}, {"getPrimaryOutputSamplingRate", "()I", (void *)android_media_AudioSystem_getPrimaryOutputSamplingRate}, {"getPrimaryOutputSamplingRate", "()I", (void *)android_media_AudioSystem_getPrimaryOutputSamplingRate}, {"getPrimaryOutputFrameCount", "()I", (void *)android_media_AudioSystem_getPrimaryOutputFrameCount}, {"getPrimaryOutputFrameCount", "()I", (void *)android_media_AudioSystem_getPrimaryOutputFrameCount}, Loading core/res/AndroidManifest.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -205,6 +205,7 @@ <protected-broadcast android:name="android.media.VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_MUTE_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_MUTE_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_MONO_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.SCO_AUDIO_STATE_CHANGED" /> <protected-broadcast android:name="android.media.SCO_AUDIO_STATE_CHANGED" /> <protected-broadcast android:name="android.media.ACTION_SCO_AUDIO_STATE_UPDATED" /> <protected-broadcast android:name="android.media.ACTION_SCO_AUDIO_STATE_UPDATED" /> Loading media/java/android/media/AudioManager.java +43 −0 Original line number Original line Diff line number Diff line Loading @@ -175,6 +175,16 @@ public class AudioManager { public static final String MASTER_MUTE_CHANGED_ACTION = public static final String MASTER_MUTE_CHANGED_ACTION = "android.media.MASTER_MUTE_CHANGED_ACTION"; "android.media.MASTER_MUTE_CHANGED_ACTION"; /** * @hide Broadcast intent when the master mono state changes. * Includes the new mono state * * @see #EXTRA_MASTER_MONO */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String MASTER_MONO_CHANGED_ACTION = "android.media.MASTER_MONO_CHANGED_ACTION"; /** /** * The new vibrate setting for a particular type. * The new vibrate setting for a particular type. * * Loading Loading @@ -253,6 +263,13 @@ public class AudioManager { public static final String EXTRA_STREAM_VOLUME_MUTED = public static final String EXTRA_STREAM_VOLUME_MUTED = "android.media.EXTRA_STREAM_VOLUME_MUTED"; "android.media.EXTRA_STREAM_VOLUME_MUTED"; /** * @hide The new master mono state for the master mono changed intent. * Value is boolean */ public static final String EXTRA_MASTER_MONO = "android.media.EXTRA_MASTER_MONO"; /** /** * Broadcast Action: Wired Headset plugged in or unplugged. * Broadcast Action: Wired Headset plugged in or unplugged. * * Loading Loading @@ -880,6 +897,17 @@ public class AudioManager { } } } } /** @hide */ public void setMasterMono(boolean mono) { IAudioService service = getService(); try { service.setMasterMono(mono, getContext().getOpPackageName(), UserHandle.getCallingUserId()); } catch (RemoteException e) { Log.e(TAG, "Dead object in setMasterMono", e); } } /** /** * Returns the current ringtone mode. * Returns the current ringtone mode. * * Loading Loading @@ -1141,6 +1169,21 @@ public class AudioManager { } } } } /** * get master mono state. * * @hide */ public boolean isMasterMono() { IAudioService service = getService(); try { return service.isMasterMono(); } catch (RemoteException e) { Log.e(TAG, "Dead object in isMasterMono", e); return false; } } /** /** * forces the stream controlled by hard volume keys * forces the stream controlled by hard volume keys * specifying streamType == -1 releases control to the * specifying streamType == -1 releases control to the Loading media/java/android/media/AudioSystem.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -624,6 +624,11 @@ public class AudioSystem public static native boolean getMasterMute(); public static native boolean getMasterMute(); public static native int getDevicesForStream(int stream); public static native int getDevicesForStream(int stream); /** @hide returns true if master mono is enabled. */ public static native boolean getMasterMono(); /** @hide enables or disables the master mono mode. */ public static native int setMasterMono(boolean mono); // helpers for android.media.AudioManager.getProperty(), see description there for meaning // helpers for android.media.AudioManager.getProperty(), see description there for meaning public static native int getPrimaryOutputSamplingRate(); public static native int getPrimaryOutputSamplingRate(); public static native int getPrimaryOutputFrameCount(); public static native int getPrimaryOutputFrameCount(); Loading Loading
core/java/android/provider/Settings.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -2605,6 +2605,15 @@ public final class Settings { private static final Validator MICROPHONE_MUTE_VALIDATOR = sBooleanValidator; private static final Validator MICROPHONE_MUTE_VALIDATOR = sBooleanValidator; /** * Master mono (int 1 = mono, 0 = normal). * * @hide */ public static final String MASTER_MONO = "master_mono"; private static final Validator MASTER_MONO_VALIDATOR = sBooleanValidator; /** /** * Whether the notifications should use the ring volume (value of 1) or * Whether the notifications should use the ring volume (value of 1) or * a separate notification volume (value of 0). In most cases, users * a separate notification volume (value of 0). In most cases, users Loading Loading @@ -3372,6 +3381,7 @@ public final class Settings { PRIVATE_SETTINGS.add(VOLUME_MASTER); PRIVATE_SETTINGS.add(VOLUME_MASTER); PRIVATE_SETTINGS.add(VOLUME_MASTER_MUTE); PRIVATE_SETTINGS.add(VOLUME_MASTER_MUTE); PRIVATE_SETTINGS.add(MICROPHONE_MUTE); PRIVATE_SETTINGS.add(MICROPHONE_MUTE); PRIVATE_SETTINGS.add(MASTER_MONO); PRIVATE_SETTINGS.add(NOTIFICATIONS_USE_RING_VOLUME); PRIVATE_SETTINGS.add(NOTIFICATIONS_USE_RING_VOLUME); PRIVATE_SETTINGS.add(VIBRATE_IN_SILENT); PRIVATE_SETTINGS.add(VIBRATE_IN_SILENT); PRIVATE_SETTINGS.add(MEDIA_BUTTON_RECEIVER); PRIVATE_SETTINGS.add(MEDIA_BUTTON_RECEIVER); Loading Loading @@ -3450,6 +3460,7 @@ public final class Settings { VALIDATORS.put(VIBRATE_INPUT_DEVICES, VIBRATE_INPUT_DEVICES_VALIDATOR); VALIDATORS.put(VIBRATE_INPUT_DEVICES, VIBRATE_INPUT_DEVICES_VALIDATOR); VALIDATORS.put(VOLUME_MASTER_MUTE, VOLUME_MASTER_MUTE_VALIDATOR); VALIDATORS.put(VOLUME_MASTER_MUTE, VOLUME_MASTER_MUTE_VALIDATOR); VALIDATORS.put(MICROPHONE_MUTE, MICROPHONE_MUTE_VALIDATOR); VALIDATORS.put(MICROPHONE_MUTE, MICROPHONE_MUTE_VALIDATOR); VALIDATORS.put(MASTER_MONO, MASTER_MONO_VALIDATOR); VALIDATORS.put(NOTIFICATIONS_USE_RING_VOLUME, NOTIFICATIONS_USE_RING_VOLUME_VALIDATOR); VALIDATORS.put(NOTIFICATIONS_USE_RING_VOLUME, NOTIFICATIONS_USE_RING_VOLUME_VALIDATOR); VALIDATORS.put(VIBRATE_IN_SILENT, VIBRATE_IN_SILENT_VALIDATOR); VALIDATORS.put(VIBRATE_IN_SILENT, VIBRATE_IN_SILENT_VALIDATOR); VALIDATORS.put(MEDIA_BUTTON_RECEIVER, MEDIA_BUTTON_RECEIVER_VALIDATOR); VALIDATORS.put(MEDIA_BUTTON_RECEIVER, MEDIA_BUTTON_RECEIVER_VALIDATOR); Loading
core/jni/android_media_AudioSystem.cpp +18 −0 Original line number Original line Diff line number Diff line Loading @@ -497,6 +497,22 @@ android_media_AudioSystem_getMasterMute(JNIEnv *env, jobject thiz) return mute; return mute; } } static jint android_media_AudioSystem_setMasterMono(JNIEnv *env, jobject thiz, jboolean mono) { return (jint) check_AudioSystem_Command(AudioSystem::setMasterMono(mono)); } static jboolean android_media_AudioSystem_getMasterMono(JNIEnv *env, jobject thiz) { bool mono; if (AudioSystem::getMasterMono(&mono) != NO_ERROR) { mono = false; } return mono; } static jint static jint android_media_AudioSystem_getDevicesForStream(JNIEnv *env, jobject thiz, jint stream) android_media_AudioSystem_getDevicesForStream(JNIEnv *env, jobject thiz, jint stream) { { Loading Loading @@ -1637,6 +1653,8 @@ static const JNINativeMethod gMethods[] = { {"getMasterVolume", "()F", (void *)android_media_AudioSystem_getMasterVolume}, {"getMasterVolume", "()F", (void *)android_media_AudioSystem_getMasterVolume}, {"setMasterMute", "(Z)I", (void *)android_media_AudioSystem_setMasterMute}, {"setMasterMute", "(Z)I", (void *)android_media_AudioSystem_setMasterMute}, {"getMasterMute", "()Z", (void *)android_media_AudioSystem_getMasterMute}, {"getMasterMute", "()Z", (void *)android_media_AudioSystem_getMasterMute}, {"setMasterMono", "(Z)I", (void *)android_media_AudioSystem_setMasterMono}, {"getMasterMono", "()Z", (void *)android_media_AudioSystem_getMasterMono}, {"getDevicesForStream", "(I)I", (void *)android_media_AudioSystem_getDevicesForStream}, {"getDevicesForStream", "(I)I", (void *)android_media_AudioSystem_getDevicesForStream}, {"getPrimaryOutputSamplingRate", "()I", (void *)android_media_AudioSystem_getPrimaryOutputSamplingRate}, {"getPrimaryOutputSamplingRate", "()I", (void *)android_media_AudioSystem_getPrimaryOutputSamplingRate}, {"getPrimaryOutputFrameCount", "()I", (void *)android_media_AudioSystem_getPrimaryOutputFrameCount}, {"getPrimaryOutputFrameCount", "()I", (void *)android_media_AudioSystem_getPrimaryOutputFrameCount}, Loading
core/res/AndroidManifest.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -205,6 +205,7 @@ <protected-broadcast android:name="android.media.VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_VOLUME_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_MUTE_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_MUTE_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.MASTER_MONO_CHANGED_ACTION" /> <protected-broadcast android:name="android.media.SCO_AUDIO_STATE_CHANGED" /> <protected-broadcast android:name="android.media.SCO_AUDIO_STATE_CHANGED" /> <protected-broadcast android:name="android.media.ACTION_SCO_AUDIO_STATE_UPDATED" /> <protected-broadcast android:name="android.media.ACTION_SCO_AUDIO_STATE_UPDATED" /> Loading
media/java/android/media/AudioManager.java +43 −0 Original line number Original line Diff line number Diff line Loading @@ -175,6 +175,16 @@ public class AudioManager { public static final String MASTER_MUTE_CHANGED_ACTION = public static final String MASTER_MUTE_CHANGED_ACTION = "android.media.MASTER_MUTE_CHANGED_ACTION"; "android.media.MASTER_MUTE_CHANGED_ACTION"; /** * @hide Broadcast intent when the master mono state changes. * Includes the new mono state * * @see #EXTRA_MASTER_MONO */ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION) public static final String MASTER_MONO_CHANGED_ACTION = "android.media.MASTER_MONO_CHANGED_ACTION"; /** /** * The new vibrate setting for a particular type. * The new vibrate setting for a particular type. * * Loading Loading @@ -253,6 +263,13 @@ public class AudioManager { public static final String EXTRA_STREAM_VOLUME_MUTED = public static final String EXTRA_STREAM_VOLUME_MUTED = "android.media.EXTRA_STREAM_VOLUME_MUTED"; "android.media.EXTRA_STREAM_VOLUME_MUTED"; /** * @hide The new master mono state for the master mono changed intent. * Value is boolean */ public static final String EXTRA_MASTER_MONO = "android.media.EXTRA_MASTER_MONO"; /** /** * Broadcast Action: Wired Headset plugged in or unplugged. * Broadcast Action: Wired Headset plugged in or unplugged. * * Loading Loading @@ -880,6 +897,17 @@ public class AudioManager { } } } } /** @hide */ public void setMasterMono(boolean mono) { IAudioService service = getService(); try { service.setMasterMono(mono, getContext().getOpPackageName(), UserHandle.getCallingUserId()); } catch (RemoteException e) { Log.e(TAG, "Dead object in setMasterMono", e); } } /** /** * Returns the current ringtone mode. * Returns the current ringtone mode. * * Loading Loading @@ -1141,6 +1169,21 @@ public class AudioManager { } } } } /** * get master mono state. * * @hide */ public boolean isMasterMono() { IAudioService service = getService(); try { return service.isMasterMono(); } catch (RemoteException e) { Log.e(TAG, "Dead object in isMasterMono", e); return false; } } /** /** * forces the stream controlled by hard volume keys * forces the stream controlled by hard volume keys * specifying streamType == -1 releases control to the * specifying streamType == -1 releases control to the Loading
media/java/android/media/AudioSystem.java +5 −0 Original line number Original line Diff line number Diff line Loading @@ -624,6 +624,11 @@ public class AudioSystem public static native boolean getMasterMute(); public static native boolean getMasterMute(); public static native int getDevicesForStream(int stream); public static native int getDevicesForStream(int stream); /** @hide returns true if master mono is enabled. */ public static native boolean getMasterMono(); /** @hide enables or disables the master mono mode. */ public static native int setMasterMono(boolean mono); // helpers for android.media.AudioManager.getProperty(), see description there for meaning // helpers for android.media.AudioManager.getProperty(), see description there for meaning public static native int getPrimaryOutputSamplingRate(); public static native int getPrimaryOutputSamplingRate(); public static native int getPrimaryOutputFrameCount(); public static native int getPrimaryOutputFrameCount(); Loading