/[svn]/linuxsampler/trunk/src/engines/common/SignalUnit.h
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/common/SignalUnit.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2226 by iliev, Mon Aug 1 19:08:09 2011 UTC revision 2227 by iliev, Wed Aug 3 17:11:40 2011 UTC
# Line 328  namespace LinuxSampler { Line 328  namespace LinuxSampler {
328       * and their influences.       * and their influences.
329       */       */
330      class CCSignalUnit: public SignalUnit {      class CCSignalUnit: public SignalUnit {
331            public:
332                /** Listener which will be notified when the level of the unit is changed. */
333                class Listener {
334                    public:
335                        virtual void ValueChanged(CCSignalUnit* pUnit) = 0;
336                };
337                
338          protected:          protected:
339              class CC {              class CC {
340                  public:                  public:
# Line 356  namespace LinuxSampler { Line 363  namespace LinuxSampler {
363              };              };
364                            
365              FixedArray<CC> Ctrls; // The MIDI controllers which modulates this signal unit.              FixedArray<CC> Ctrls; // The MIDI controllers which modulates this signal unit.
366                Listener* pListener;
367    
368          public:          public:
369              CCSignalUnit(SignalUnitRack* rack): SignalUnit(rack), Ctrls(128) {              
370                                CCSignalUnit(SignalUnitRack* rack, Listener* l = NULL): SignalUnit(rack), Ctrls(128) {
371                    pListener = l;
372              }              }
373                            
374              CCSignalUnit(const CCSignalUnit& Unit): SignalUnit(Unit.pRack), Ctrls(128) { Copy(Unit); }              CCSignalUnit(const CCSignalUnit& Unit): SignalUnit(Unit.pRack), Ctrls(128) { Copy(Unit); }
# Line 367  namespace LinuxSampler { Line 376  namespace LinuxSampler {
376                            
377              void Copy(const CCSignalUnit& Unit) {              void Copy(const CCSignalUnit& Unit) {
378                  Ctrls.copy(Unit.Ctrls);                  Ctrls.copy(Unit.Ctrls);
379                    pListener = Unit.pListener;
380                  SignalUnit::Copy(Unit);                  SignalUnit::Copy(Unit);
381              }              }
382                            
# Line 396  namespace LinuxSampler { Line 406  namespace LinuxSampler {
406                      recalculate = true;                      recalculate = true;
407                  }                  }
408                                    
409                  if (recalculate) Calculate();                  if (recalculate) {
410                        Calculate();
411                        if (pListener!= NULL) pListener->ValueChanged(this);
412                    }
413              }              }
414                            
415              virtual void Calculate() {              virtual void Calculate() {

Legend:
Removed from v.2226  
changed lines
  Added in v.2227

  ViewVC Help
Powered by ViewVC