--- linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.h 2011/08/03 19:04:10 2228 +++ linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.h 2011/08/04 19:02:36 2229 @@ -53,6 +53,7 @@ } double GetSampleRate(); + float GetInfluence(ArrayList< ::sfz::CC>& cc); }; @@ -123,10 +124,11 @@ public: int depth; EGv1Unit(SfzSignalUnitRack* rack): EGUnit(rack), depth(0) { } - virtual void Trigger(); }; class EGv2Unit: public EGUnit< ::LinuxSampler::sfz::EG> { + protected: + ::sfz::EG egInfo; public: EGv2Unit(SfzSignalUnitRack* rack): EGUnit< ::LinuxSampler::sfz::EG>(rack) { } virtual void Trigger(); @@ -144,6 +146,12 @@ virtual void Trigger(); }; + class AmpEGUnit: public EGv1Unit { + public: + AmpEGUnit(SfzSignalUnitRack* rack): EGv1Unit(rack) { } + virtual void Trigger(); + }; + class AbstractLfo { public: virtual float Render() = 0; @@ -205,7 +213,7 @@ SfzSignalUnit::Copy(Unit); } - virtual bool Active() { return true; } + virtual bool Active() { return pLfoInfo->freq > 0; } virtual void Trigger(); virtual void Increment(); virtual float GetLevel() { return Level; } @@ -298,7 +306,7 @@ class SfzSignalUnitRack : public SignalUnitRack { private: EndpointUnit suEndpoint; - EGv1Unit suVolEG; + AmpEGUnit suVolEG; FilEGUnit suFilEG; PitchEGUnit suPitchEG;