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
132 // Maximum time allocated to effect engines to complete the turn off sequence
144 wp<EffectChain> mChain; // parent effect chain
147 const effect_descriptor_t mDescriptor;// effect descriptor received from effect engine
149 effect_handle_t mEffectInterface; // Effect module C API
153 // First handle in mHandles has highest priority and controls the effect module
154 uint32_t mMaxDisableWaitCnt; // maximum grace period before forcing an effect off after
157 bool mSuspended; // effect is suspended: temporarily disabled by framework
158 bool mOffloaded; // effect is currently offloaded to the audio DSP
163 // to receive parameter updates, keeps track of effect control
166 // an effect module.
171 EffectHandle(const sp<EffectModule>& effect,
195 // Give or take control of effect module
198 // - enabled: state of the effect when control is passed
212 sp<EffectModule> effect() const { return mEffect; }
230 int mPriority; // client application priority to control the effect
231 bool mHasControl; // true if this handle is controlling the effect
232 bool mEnabled; // cached enable state: needed when the effect is
243 // tracks) are insert only. The EffectChain maintains an ordered list of effect module, the
244 // order corresponding in the effect process order. When attached to a track (session ID !=
257 // minimum duration during which we force calling effect process when last track on
258 // a session is stopped or removed to allow effect tail to be rendered
313 // suspend effect of the given type
318 // check if effects should be suspend or restored when a given effect is enable or disabled
319 void checkSuspendOnEffectEnabled(const sp<EffectModule>& effect,
324 // At least one non offloadable effect in the chain is enabled
350 // get a list of effect modules to suspend when an effect of the type
354 // get an effect module if it is currently enable
356 // true if the effect whose descriptor is passed can be suspended
357 // OEMs can modify the rules implemented in this method to exclude specific effect
366 mutable Mutex mLock; // mutex protecting effect list
367 Vector< sp<EffectModule> > mEffects; // list of effect modules
376 int32_t mTailBufferCount; // current effect tail buffer count
377 int32_t mMaxTailBuffers; // maximum effect tail buffers
379 int mVolumeCtrlIdx; // index of insert effect having control over volume
384 uint32_t mStrategy; // strategy for this effect chain
386 // Use effect type UUID timelow field as key. There is no real risk of identical
387 // timeLow fields among effect type UUIDs.