--- linuxsampler/trunk/src/engines/sfz/Voice.h 2011/08/01 19:08:09 2224 +++ linuxsampler/trunk/src/engines/sfz/Voice.h 2012/03/10 16:16:14 2327 @@ -4,7 +4,7 @@ * * * Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * * Copyright (C) 2005 - 2008 Christian Schoenebeck * - * Copyright (C) 2009 - 2011 Christian Schoenebeck and Grigor Iliev * + * Copyright (C) 2009 - 2012 Christian Schoenebeck and Grigor Iliev * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -52,6 +52,9 @@ virtual ~Voice(); void SetOutput(AudioOutputDevice* pAudioOutputDevice); void SetEngine(LinuxSampler::Engine* pEngine); + void CalculateFadeOutCoeff(float FadeOutTime, float SampleRate); + + virtual void VoiceFreed() { SignalRack.Reset(); } protected: virtual SampleInfo GetSampleInfo(); @@ -71,10 +74,10 @@ virtual void InitLFO3() { } virtual float CalculateCutoffBase(uint8_t MIDIKeyVelocity); virtual float CalculateFinalCutoff(float cutoffBase); - virtual uint8_t GetVCFCutoffCtrl(); - virtual uint8_t GetVCFResonanceCtrl(); + virtual uint8_t GetVCFCutoffCtrl() { return 0; } + virtual uint8_t GetVCFResonanceCtrl() { return 0; } virtual void ProcessCCEvent(RTList::Iterator& itEvent); - virtual void ProcessCutoffEvent(RTList::Iterator& itEvent); + virtual void ProcessCutoffEvent(RTList::Iterator& itEvent) { } virtual double GetVelocityAttenuation(uint8_t MIDIKeyVelocity); virtual double GetVelocityRelease(uint8_t MIDIKeyVelocity); virtual double GetSampleAttenuation(); @@ -83,10 +86,6 @@ virtual int GetRAMCacheOffset() { return pRegion->pSample->RAMCacheOffset; } private: - EG EG1; - EGADSR EGADSR1; - EG EG2; - EGADSR EGADSR2; SfzSignalUnitRack SignalRack; public: // FIXME: just made public for debugging (sanity check in Engine::RenderAudio()), should be changed to private before the final release @@ -103,12 +102,16 @@ EngineChannel* GetSfzEngineChannel(); - friend class EGv1Unit; + friend class CCUnit; + friend class XFInCCUnit; + friend class XFOutCCUnit; + friend class AmpEGUnit; friend class FilEGUnit; friend class PitchEGUnit; friend class PitchLFOUnit; friend class AmpLFOUnit; friend class FilLFOUnit; + friend class EndpointUnit; friend class SfzSignalUnitRack; protected: