--- linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.h 2011/08/02 13:44:57 2225 +++ linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.h 2011/08/03 09:12:09 2226 @@ -170,17 +170,31 @@ virtual void SetPhase(float phase) { T::setPhase(phase); } }; + class LFOUnit; + + class FadeEGUnit: public EGUnit { + public: + FadeEGUnit(SfzSignalUnitRack* rack): EGUnit(rack) { } + virtual void Trigger() { } + virtual void EnterReleaseStage() { } + virtual void CancelRelease() { } + + friend class LFOUnit; + }; + class LFOUnit: public SfzSignalUnit { public: - ::sfz::LFO* pLfoInfo; + ::sfz::LFO* pLfoInfo; AbstractLfo* pLFO; + FadeEGUnit suFadeEG; - LFOUnit(SfzSignalUnitRack* rack): SfzSignalUnit(rack), pLfoInfo(NULL), pLFO(NULL) { } - LFOUnit(const LFOUnit& Unit): SfzSignalUnit(Unit) { Copy(Unit); } + LFOUnit(SfzSignalUnitRack* rack): SfzSignalUnit(rack), pLfoInfo(NULL), pLFO(NULL), suFadeEG(rack) { } + LFOUnit(const LFOUnit& Unit); void operator=(const LFOUnit& Unit) { Copy(Unit); } void Copy(const LFOUnit& Unit) { pLfoInfo = Unit.pLfoInfo; + suFadeEG = Unit.suFadeEG; SfzSignalUnit::Copy(Unit); }