Refactor and cleanup CC dispatch logic

This commit is contained in:
hirsch 2016-06-25 17:49:34 -04:00
parent 394b374b7f
commit 1130fceea5
7 changed files with 173 additions and 116 deletions

29
amp.h
View file

@ -14,31 +14,37 @@ class Mustang;
class AmpCC {
protected:
Mustang * amp;
public:
// Only base class is friend of Mustang, so forward calls from
// derived classes through these methods.
int control_common1( int parm, int bucket, int value );
int control_common2( int parm, int bucket, int value );
public:
AmpCC( Mustang * theAmp ) : amp(theAmp) {}
virtual int dispatch( int cc, int value );
private:
// Gain
int cc69( int value );
virtual int cc69( int value );
// Ch. Volume
int cc70( int value );
virtual int cc70( int value );
// Treble
int cc71( int value );
virtual int cc71( int value );
// Mid
int cc72( int value );
virtual int cc72( int value );
// Bass
int cc73( int value );
virtual int cc73( int value );
// Sag
virtual int cc74( int value );
// Bias
virtual int cc75( int value );
// Noise Gate
int cc76( int value );
virtual int cc76( int value );
// Cabinet
int cc77( int value );
virtual int cc77( int value );
// Dummy in base class
virtual int cc78( int value ) { return 0;}
@ -52,6 +58,7 @@ public:
class AmpCC1 : public AmpCC {
public:
AmpCC1( Mustang * theAmp ) : AmpCC(theAmp) {}
private:
// Presence
virtual int cc78( int value );
// Blend
@ -64,6 +71,7 @@ public:
class AmpCC2 : public AmpCC {
public:
AmpCC2( Mustang * theAmp ) : AmpCC(theAmp) {}
private:
// Gain2
virtual int cc78( int value );
// Master Volume
@ -76,6 +84,7 @@ public:
class AmpCC3 : public AmpCC {
public:
AmpCC3( Mustang * theAmp ) : AmpCC(theAmp) {}
private:
// Cut
virtual int cc78( int value );
// Master Volume
@ -90,6 +99,7 @@ public:
class AmpCC4 : public AmpCC {
public:
AmpCC4( Mustang * theAmp ) : AmpCC(theAmp) {}
private:
// Presence
virtual int cc78( int value );
// Master Volume
@ -102,6 +112,7 @@ public:
class AmpCC5 : public AmpCC {
public:
AmpCC5( Mustang * theAmp ) : AmpCC(theAmp) {}
private:
virtual int cc78( int value ) { return 0;}
virtual int cc79( int value ) { return 0;}
};