diff options
author | Eric Laurent <elaurent@google.com> | 2010-09-21 14:52:01 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2010-09-21 15:11:50 -0700 |
commit | 672c0dc3a04cb149691603342c319994e21235cb (patch) | |
tree | b3051eb2e82011b5ecdfc939cdb118c59cbe0311 /media/java | |
parent | 34d3aeaf7f5dd744f46220f7730913468256ae9c (diff) | |
download | frameworks_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-x | media/java/android/media/Visualizer.java | 13 |
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; } |