--- linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.h 2011/08/10 19:40:39 2235 +++ linuxsampler/trunk/src/engines/sfz/SfzSignalUnitRack.h 2011/08/11 18:25:45 2236 @@ -98,6 +98,24 @@ }; + class XFInCCUnit: public CCUnit { + public: + XFInCCUnit(SfzSignalUnitRack* rack, Listener* l = NULL): CCUnit(rack, l) { } + + virtual bool Active() { return Ctrls.size() > 0; } + virtual void Calculate(); + virtual void SetCrossFadeCCs(::sfz::Array& loCCs, ::sfz::Array& hiCCs); + }; + + + class XFOutCCUnit: public XFInCCUnit { + public: + XFOutCCUnit(SfzSignalUnitRack* rack, Listener* l = NULL): XFInCCUnit(rack, l) { } + + virtual void Calculate(); + }; + + template class EGUnit: public SfzSignalUnit { public: @@ -315,8 +333,13 @@ class EndpointUnit: public EndpointSignalUnit { + private: + float xfCoeff; // crossfade coefficient + public: Voice* pVoice; + XFInCCUnit suXFInCC; + XFOutCCUnit suXFOutCC; EndpointUnit(SfzSignalUnitRack* rack);