summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/audio/AudioManagerShellCommand.java54
1 files changed, 54 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/audio/AudioManagerShellCommand.java b/services/core/java/com/android/server/audio/AudioManagerShellCommand.java
index 241abafe6179..85acf707677a 100644
--- a/services/core/java/com/android/server/audio/AudioManagerShellCommand.java
+++ b/services/core/java/com/android/server/audio/AudioManagerShellCommand.java
@@ -47,6 +47,12 @@ class AudioManagerShellCommand extends ShellCommand {
return setEncodedSurroundMode();
case "get-encoded-surround-mode":
return getEncodedSurroundMode();
+ case "set-sound-dose-value":
+ return setSoundDoseValue();
+ case "get-sound-dose-value":
+ return getSoundDoseValue();
+ case "reset-sound-dose-timeout":
+ return resetSoundDoseTimeout();
}
return 0;
}
@@ -66,6 +72,12 @@ class AudioManagerShellCommand extends ShellCommand {
pw.println(" Sets the encoded surround sound mode to SURROUND_SOUND_MODE");
pw.println(" get-encoded-surround-mode");
pw.println(" Returns the encoded surround sound mode");
+ pw.println(" set-sound-dose-value");
+ pw.println(" Sets the current sound dose value");
+ pw.println(" get-sound-dose-value");
+ pw.println(" Returns the current sound dose value");
+ pw.println(" reset-sound-dose-timeout");
+ pw.println(" Resets the sound dose timeout used for momentary exposure");
}
private int setSurroundFormatEnabled() {
@@ -162,4 +174,46 @@ class AudioManagerShellCommand extends ShellCommand {
getOutPrintWriter().println("Encoded surround mode: " + am.getEncodedSurroundMode());
return 0;
}
+
+ private int setSoundDoseValue() {
+ String soundDoseValueText = getNextArg();
+
+ if (soundDoseValueText == null) {
+ getErrPrintWriter().println("Error: no sound dose value specified");
+ return 1;
+ }
+
+ float soundDoseValue = 0.f;
+ try {
+ soundDoseValue = Float.parseFloat(soundDoseValueText);
+ } catch (NumberFormatException e) {
+ getErrPrintWriter().println("Error: wrong format specified for sound dose");
+ return 1;
+ }
+
+ if (soundDoseValue < 0) {
+ getErrPrintWriter().println("Error: invalid value of sound dose");
+ return 1;
+ }
+
+ final Context context = mService.mContext;
+ final AudioManager am = context.getSystemService(AudioManager.class);
+ am.setCsd(soundDoseValue);
+ return 0;
+ }
+
+ private int getSoundDoseValue() {
+ final Context context = mService.mContext;
+ final AudioManager am = context.getSystemService(AudioManager.class);
+ getOutPrintWriter().println("Sound dose value: " + am.getCsd());
+ return 0;
+ }
+
+ private int resetSoundDoseTimeout() {
+ final Context context = mService.mContext;
+ final AudioManager am = context.getSystemService(AudioManager.class);
+ am.setCsd(-1.f);
+ getOutPrintWriter().println("Reset sound dose momentary exposure timeout");
+ return 0;
+ }
}