summaryrefslogtreecommitdiffstats
path: root/media/java
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2010-09-21 14:52:01 -0700
committerEric Laurent <elaurent@google.com>2010-09-21 15:11:50 -0700
commit672c0dc3a04cb149691603342c319994e21235cb (patch)
treeb3051eb2e82011b5ecdfc939cdb118c59cbe0311 /media/java
parent34d3aeaf7f5dd744f46220f7730913468256ae9c (diff)
downloadframeworks_base-672c0dc3a04cb149691603342c319994e21235cb.zip
frameworks_base-672c0dc3a04cb149691603342c319994e21235cb.tar.gz
frameworks_base-672c0dc3a04cb149691603342c319994e21235cb.tar.bz2
Fix issue 2913071.
Scale audio signal during capture according to peak level so that returned values on 8 bits contain enough information even for weak signals. Also do not reject requests to enable/disable the visualizer if we are already in the requested state. Change-Id: I07a705619764350834e61f82d161761eab688747
Diffstat (limited to 'media/java')
-rwxr-xr-xmedia/java/android/media/Visualizer.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/media/java/android/media/Visualizer.java b/media/java/android/media/Visualizer.java
index 453fc04..33222ff 100755
--- a/media/java/android/media/Visualizer.java
+++ b/media/java/android/media/Visualizer.java
@@ -218,13 +218,16 @@ public class Visualizer {
public int setEnabled(boolean enabled)
throws IllegalStateException {
synchronized (mStateLock) {
- if ((enabled && mState != STATE_INITIALIZED) ||
- (!enabled && mState != STATE_ENABLED)) {
+ if (mState == STATE_UNINITIALIZED) {
throw(new IllegalStateException("setEnabled() called in wrong state: "+mState));
}
- int status = native_setEnabled(enabled);
- if (status == SUCCESS) {
- mState = enabled ? STATE_ENABLED : STATE_INITIALIZED;
+ int status = SUCCESS;
+ if ((enabled && (mState == STATE_INITIALIZED)) ||
+ (!enabled && (mState == STATE_ENABLED))) {
+ status = native_setEnabled(enabled);
+ if (status == SUCCESS) {
+ mState = enabled ? STATE_ENABLED : STATE_INITIALIZED;
+ }
}
return status;
}