summaryrefslogtreecommitdiff
path: root/services/audioflinger/AudioMixer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/audioflinger/AudioMixer.cpp')
-rw-r--r--services/audioflinger/AudioMixer.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp
index 433f1f7027a1..50dcda7a1aff 100644
--- a/services/audioflinger/AudioMixer.cpp
+++ b/services/audioflinger/AudioMixer.cpp
@@ -220,6 +220,12 @@ status_t AudioMixer::setParameter(int target, int name, void *value)
return NO_ERROR;
}
}
+ if (name == RESET) {
+ track_t& track = mState.tracks[ mActiveTrack ];
+ track.resetResampler();
+ invalidateState(1<<mActiveTrack);
+ return NO_ERROR;
+ }
break;
case RAMP_VOLUME:
case VOLUME:
@@ -289,6 +295,13 @@ bool AudioMixer::track_t::doesResample() const
return resampler != 0;
}
+void AudioMixer::track_t::resetResampler()
+{
+ if (resampler != 0) {
+ resampler->reset();
+ }
+}
+
inline
void AudioMixer::track_t::adjustVolumeRamp(bool aux)
{