Home | History | Annotate | Download | only in audioflinger

Lines Matching full:effect

22 //--- Audio Effect Management
33 // The EffectModule class is a wrapper object controlling the effect engine implementation
34 // in the effect library. It prevents concurrent calls to process() and command() functions
36 // to all client applications using this effect and notifies applications of effect state,
38 // reset, enable, disable commands to effect engine and provide volume
40 // When controlling an auxiliary effect, the EffectModule also provides an input buffer used by
130 // Maximum time allocated to effect engines to complete the turn off sequence
142 wp<EffectChain> mChain; // parent effect chain
145 const effect_descriptor_t mDescriptor;// effect descriptor received from effect engine
147 effect_handle_t mEffectInterface; // Effect module C API
151 // First handle in mHandles has highest priority and controls the effect module
152 uint32_t mMaxDisableWaitCnt; // maximum grace period before forcing an effect off after
155 bool mSuspended; // effect is suspended: temporarily disabled by framework
156 bool mOffloaded; // effect is currently offloaded to the audio DSP
161 // to receive parameter updates, keeps track of effect control
164 // an effect module.
169 EffectHandle(const sp<EffectModule>& effect,
193 // Give or take control of effect module
196 // - enabled: state of the effect when control is passed
210 sp<EffectModule> effect() const { return mEffect; }
228 int mPriority; // client application priority to control the effect
229 bool mHasControl; // true if this handle is controlling the effect
230 bool mEnabled; // cached enable state: needed when the effect is
241 // tracks) are insert only. The EffectChain maintains an ordered list of effect module, the
242 // order corresponding in the effect process order. When attached to a track (session ID !=
255 // minimum duration during which we force calling effect process when last track on
256 // a session is stopped or removed to allow effect tail to be rendered
310 // suspend effect of the given type
315 // check if effects should be suspend or restored when a given effect is enable or disabled
316 void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
321 // At least one non offloadable effect in the chain is enabled
349 // get a list of effect modules to suspend when an effect of the type
353 // get an effect module if it is currently enable
355 // true if the effect whose descriptor is passed can be suspended
356 // OEMs can modify the rules implemented in this method to exclude specific effect
365 Mutex mLock; // mutex protecting effect list
366 Vector< sp<EffectModule> > mEffects; // list of effect modules
375 int32_t mTailBufferCount; // current effect tail buffer count
376 int32_t mMaxTailBuffers; // maximum effect tail buffers
378 int mVolumeCtrlIdx; // index of insert effect having control over volume
383 uint32_t mStrategy; // strategy for this effect chain
385 // Use effect type UUID timelow field as key. There is no real risk of identical
386 // timeLow fields among effect type UUIDs.
389 volatile int32_t mForceVolume; // force next volume command because a new effect was enabled