--- linuxsampler/trunk/src/engines/gig/EGADSR.h 2004/09/12 14:09:02 238 +++ linuxsampler/trunk/src/engines/gig/EGADSR.h 2004/09/12 14:48:19 239 @@ -57,7 +57,7 @@ }; EGADSR(gig::Engine* pEngine, Event::destination_t ModulationDestination); - void Process(uint Samples, RTEList* pEvents, Event* pTriggerEvent, double SamplePos, double CurrentPitch); + void Process(uint TotalSamples, RTEList* pEvents, Event* pTriggerEvent, double SamplePos, double CurrentPitch, Event* pKillEvent = NULL); void Trigger(uint PreAttack, double AttackTime, bool HoldAttack, long LoopStart, double Decay1Time, double Decay2Time, bool InfiniteSustain, uint SustainLevel, double ReleaseTime, uint Delay); inline EGADSR::stage_t GetStage() { return Stage; } protected: @@ -78,6 +78,9 @@ float ReleaseCoeff; long ReleaseStepsLeft; ///< number of sample points til end of release stage bool ReleasePostponed; ///< If a "release" event occured in the previous audio fragment, but wasn't processed yet. + const static float EndCoeff; + private: + static float CalculateEndCoeff(); }; }} // namespace LinuxSampler::gig