Refactor and cleanup CC dispatch logic
This commit is contained in:
parent
394b374b7f
commit
1130fceea5
7 changed files with 173 additions and 116 deletions
98
amp.cpp
98
amp.cpp
|
|
@ -2,98 +2,162 @@
|
||||||
#include "amp.h"
|
#include "amp.h"
|
||||||
#include "mustang.h"
|
#include "mustang.h"
|
||||||
|
|
||||||
|
int
|
||||||
|
AmpCC::control_common1( int parm, int bucket, int value ) {
|
||||||
|
return amp->control_common1( parm, bucket, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
AmpCC::control_common2( int parm, int bucket, int value ) {
|
||||||
|
return amp->control_common2( parm, bucket, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
AmpCC::dispatch( int cc, int value ) {
|
||||||
|
|
||||||
|
switch( cc ) {
|
||||||
|
case 69:
|
||||||
|
// Gain
|
||||||
|
return cc69( value );
|
||||||
|
break;
|
||||||
|
case 70:
|
||||||
|
// Channel volume
|
||||||
|
return cc70( value );
|
||||||
|
break;
|
||||||
|
case 71:
|
||||||
|
// Treble
|
||||||
|
return cc71( value );
|
||||||
|
break;
|
||||||
|
case 72:
|
||||||
|
// Mid
|
||||||
|
return cc72( value );
|
||||||
|
break;
|
||||||
|
case 73:
|
||||||
|
// Bass
|
||||||
|
return cc73( value );
|
||||||
|
break;
|
||||||
|
case 74:
|
||||||
|
// Sag
|
||||||
|
return cc74( value );
|
||||||
|
break;
|
||||||
|
case 75:
|
||||||
|
// Bias
|
||||||
|
return cc75( value );
|
||||||
|
break;
|
||||||
|
case 76:
|
||||||
|
// Noise Gate
|
||||||
|
return cc76( value );
|
||||||
|
break;
|
||||||
|
case 77:
|
||||||
|
// Cabinet
|
||||||
|
return cc77( value );
|
||||||
|
break;
|
||||||
|
case 78:
|
||||||
|
// Presence / Gain2 / Cut
|
||||||
|
return cc78( value );
|
||||||
|
break;
|
||||||
|
case 79:
|
||||||
|
// Blend / Master Volume
|
||||||
|
return cc79( value );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc69( int value ) {
|
AmpCC::cc69( int value ) {
|
||||||
return amp->control_common1( 0x01, 0x0c, value );
|
return control_common1( 0x01, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc70( int value ) {
|
AmpCC::cc70( int value ) {
|
||||||
return amp->control_common1( 0x00, 0x0c, value );
|
return control_common1( 0x00, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc71( int value ) {
|
AmpCC::cc71( int value ) {
|
||||||
return amp->control_common1( 0x04, 0x0c, value );
|
return control_common1( 0x04, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc72( int value ) {
|
AmpCC::cc72( int value ) {
|
||||||
return amp->control_common1( 0x05, 0x0c, value );
|
return control_common1( 0x05, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc73( int value ) {
|
AmpCC::cc73( int value ) {
|
||||||
return amp->control_common1( 0x06, 0x0c, value );
|
return control_common1( 0x06, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc74( int value ) {
|
AmpCC::cc74( int value ) {
|
||||||
if ( value > 2 ) return 0;
|
if ( value > 2 ) return 0;
|
||||||
return amp->control_common2( 0x13, 0x8f, value );
|
return control_common2( 0x13, 0x8f, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc75( int value ) {
|
AmpCC::cc75( int value ) {
|
||||||
return amp->control_common1( 0x0a, 0x0d, value );
|
return control_common1( 0x0a, 0x0d, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc76( int value ) {
|
AmpCC::cc76( int value ) {
|
||||||
if ( value > 4 ) return 0;
|
if ( value > 4 ) return 0;
|
||||||
return amp->control_common2( 0x0f, 0x90, value );
|
return control_common2( 0x0f, 0x90, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC::cc77( int value ) {
|
AmpCC::cc77( int value ) {
|
||||||
if ( value < 1 || value > 12 ) return 0;
|
if ( value < 1 || value > 12 ) return 0;
|
||||||
return amp->control_common2( 0x11, 0x8e, value );
|
return control_common2( 0x11, 0x8e, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC1::cc78( int value ) {
|
AmpCC1::cc78( int value ) {
|
||||||
return amp->control_common1( 0x07, 0x0c, value );
|
return control_common1( 0x07, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC1::cc79( int value ) {
|
AmpCC1::cc79( int value ) {
|
||||||
return amp->control_common1( 0x02, 0x0c, value );
|
return control_common1( 0x02, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC2::cc78( int value ) {
|
AmpCC2::cc78( int value ) {
|
||||||
return amp->control_common1( 0x02, 0x0c, value );
|
return control_common1( 0x02, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC2::cc79( int value ) {
|
AmpCC2::cc79( int value ) {
|
||||||
return amp->control_common1( 0x03, 0x0c, value );
|
return control_common1( 0x03, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC3::cc78( int value ) {
|
AmpCC3::cc78( int value ) {
|
||||||
return amp->control_common1( 0x07, 0x0c, value );
|
return control_common1( 0x07, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC3::cc79( int value ) {
|
AmpCC3::cc79( int value ) {
|
||||||
return amp->control_common1( 0x03, 0x0c, value );
|
return control_common1( 0x03, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC4::cc78( int value ) {
|
AmpCC4::cc78( int value ) {
|
||||||
return amp->control_common1( 0x07, 0x0c, value );
|
return control_common1( 0x07, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
AmpCC4::cc79( int value ) {
|
AmpCC4::cc79( int value ) {
|
||||||
return amp->control_common1( 0x03, 0x0c, value );
|
return control_common1( 0x03, 0x0c, value );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
29
amp.h
29
amp.h
|
|
@ -14,31 +14,37 @@ class Mustang;
|
||||||
class AmpCC {
|
class AmpCC {
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
Mustang * amp;
|
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) {}
|
AmpCC( Mustang * theAmp ) : amp(theAmp) {}
|
||||||
|
|
||||||
|
virtual int dispatch( int cc, int value );
|
||||||
|
|
||||||
|
private:
|
||||||
// Gain
|
// Gain
|
||||||
int cc69( int value );
|
virtual int cc69( int value );
|
||||||
// Ch. Volume
|
// Ch. Volume
|
||||||
int cc70( int value );
|
virtual int cc70( int value );
|
||||||
// Treble
|
// Treble
|
||||||
int cc71( int value );
|
virtual int cc71( int value );
|
||||||
// Mid
|
// Mid
|
||||||
int cc72( int value );
|
virtual int cc72( int value );
|
||||||
// Bass
|
// Bass
|
||||||
int cc73( int value );
|
virtual int cc73( int value );
|
||||||
// Sag
|
// Sag
|
||||||
virtual int cc74( int value );
|
virtual int cc74( int value );
|
||||||
// Bias
|
// Bias
|
||||||
virtual int cc75( int value );
|
virtual int cc75( int value );
|
||||||
// Noise Gate
|
// Noise Gate
|
||||||
int cc76( int value );
|
virtual int cc76( int value );
|
||||||
// Cabinet
|
// Cabinet
|
||||||
int cc77( int value );
|
virtual int cc77( int value );
|
||||||
|
|
||||||
// Dummy in base class
|
// Dummy in base class
|
||||||
virtual int cc78( int value ) { return 0;}
|
virtual int cc78( int value ) { return 0;}
|
||||||
|
|
@ -52,6 +58,7 @@ public:
|
||||||
class AmpCC1 : public AmpCC {
|
class AmpCC1 : public AmpCC {
|
||||||
public:
|
public:
|
||||||
AmpCC1( Mustang * theAmp ) : AmpCC(theAmp) {}
|
AmpCC1( Mustang * theAmp ) : AmpCC(theAmp) {}
|
||||||
|
private:
|
||||||
// Presence
|
// Presence
|
||||||
virtual int cc78( int value );
|
virtual int cc78( int value );
|
||||||
// Blend
|
// Blend
|
||||||
|
|
@ -64,6 +71,7 @@ public:
|
||||||
class AmpCC2 : public AmpCC {
|
class AmpCC2 : public AmpCC {
|
||||||
public:
|
public:
|
||||||
AmpCC2( Mustang * theAmp ) : AmpCC(theAmp) {}
|
AmpCC2( Mustang * theAmp ) : AmpCC(theAmp) {}
|
||||||
|
private:
|
||||||
// Gain2
|
// Gain2
|
||||||
virtual int cc78( int value );
|
virtual int cc78( int value );
|
||||||
// Master Volume
|
// Master Volume
|
||||||
|
|
@ -76,6 +84,7 @@ public:
|
||||||
class AmpCC3 : public AmpCC {
|
class AmpCC3 : public AmpCC {
|
||||||
public:
|
public:
|
||||||
AmpCC3( Mustang * theAmp ) : AmpCC(theAmp) {}
|
AmpCC3( Mustang * theAmp ) : AmpCC(theAmp) {}
|
||||||
|
private:
|
||||||
// Cut
|
// Cut
|
||||||
virtual int cc78( int value );
|
virtual int cc78( int value );
|
||||||
// Master Volume
|
// Master Volume
|
||||||
|
|
@ -90,6 +99,7 @@ public:
|
||||||
class AmpCC4 : public AmpCC {
|
class AmpCC4 : public AmpCC {
|
||||||
public:
|
public:
|
||||||
AmpCC4( Mustang * theAmp ) : AmpCC(theAmp) {}
|
AmpCC4( Mustang * theAmp ) : AmpCC(theAmp) {}
|
||||||
|
private:
|
||||||
// Presence
|
// Presence
|
||||||
virtual int cc78( int value );
|
virtual int cc78( int value );
|
||||||
// Master Volume
|
// Master Volume
|
||||||
|
|
@ -102,6 +112,7 @@ public:
|
||||||
class AmpCC5 : public AmpCC {
|
class AmpCC5 : public AmpCC {
|
||||||
public:
|
public:
|
||||||
AmpCC5( Mustang * theAmp ) : AmpCC(theAmp) {}
|
AmpCC5( Mustang * theAmp ) : AmpCC(theAmp) {}
|
||||||
|
private:
|
||||||
virtual int cc78( int value ) { return 0;}
|
virtual int cc78( int value ) { return 0;}
|
||||||
virtual int cc79( int value ) { return 0;}
|
virtual int cc79( int value ) { return 0;}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
10
mustang.cpp
10
mustang.cpp
|
|
@ -219,18 +219,24 @@ void Mustang::updateReverb(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int Mustang::effect_toggle(int state_index, int state)
|
int Mustang::effect_toggle(int cc, int value)
|
||||||
{
|
{
|
||||||
int ret, received;
|
int ret, received;
|
||||||
unsigned char array[LENGTH];
|
unsigned char array[LENGTH];
|
||||||
|
|
||||||
|
// Translate 23..26 --> 2..5 (current state index)
|
||||||
|
int state_index = cc - 21;
|
||||||
|
int state;
|
||||||
|
if ( value >= 0 && value <= 63 ) state = 1;
|
||||||
|
else if ( value > 63 && value <= 127 ) state = 0;
|
||||||
|
|
||||||
memset(array, 0x00, LENGTH);
|
memset(array, 0x00, LENGTH);
|
||||||
array[0] = 0x19;
|
array[0] = 0x19;
|
||||||
array[1] = 0xc3;
|
array[1] = 0xc3;
|
||||||
// Translate DSP to family
|
// Translate DSP to family
|
||||||
array[FAMILY] = curr_state[state_index][DSP] - 3;
|
array[FAMILY] = curr_state[state_index][DSP] - 3;
|
||||||
// Invert logic
|
// Invert logic
|
||||||
array[ACTIVE_INVERT] = state > 0 ? 0 : 1;
|
array[ACTIVE_INVERT] = state;
|
||||||
array[FXSLOT] = curr_state[state_index][FXSLOT];
|
array[FXSLOT] = curr_state[state_index][FXSLOT];
|
||||||
#if 0
|
#if 0
|
||||||
for ( int i=0; i<15; i++ ) fprintf( stderr, "%02x ", array[i] );
|
for ( int i=0; i<15; i++ ) fprintf( stderr, "%02x ", array[i] );
|
||||||
|
|
|
||||||
20
mustang.h
20
mustang.h
|
|
@ -128,8 +128,10 @@
|
||||||
#define SPRING_63_ID 0x21
|
#define SPRING_63_ID 0x21
|
||||||
#define SPRING_65_ID 0x0b
|
#define SPRING_65_ID 0x0b
|
||||||
|
|
||||||
class Mustang
|
class Mustang {
|
||||||
{
|
friend class AmpCC;
|
||||||
|
friend class ReverbCC;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Mustang();
|
Mustang();
|
||||||
~Mustang();
|
~Mustang();
|
||||||
|
|
@ -144,14 +146,8 @@ public:
|
||||||
int load_memory_bank(int);
|
int load_memory_bank(int);
|
||||||
int save_effects(int , char *, int , struct fx_pedal_settings *);
|
int save_effects(int , char *, int , struct fx_pedal_settings *);
|
||||||
|
|
||||||
// State: 1 = off, 0 = on
|
int effect_toggle(int cc, int value);
|
||||||
int effect_toggle(int category, int state);
|
|
||||||
|
|
||||||
int control_common1(int parm, int bucket, int value);
|
|
||||||
int control_common2(int parm, int bucket, int value);
|
|
||||||
|
|
||||||
int efx_common1(int parm, int bucket, int type, int value);
|
|
||||||
|
|
||||||
AmpCC * getAmp( void ) { return curr_amp;}
|
AmpCC * getAmp( void ) { return curr_amp;}
|
||||||
ReverbCC * getReverb( void ) { return curr_reverb;}
|
ReverbCC * getReverb( void ) { return curr_reverb;}
|
||||||
|
|
||||||
|
|
@ -185,9 +181,13 @@ public:
|
||||||
AmpCC * curr_amp;
|
AmpCC * curr_amp;
|
||||||
ReverbCC * curr_reverb;
|
ReverbCC * curr_reverb;
|
||||||
|
|
||||||
|
int control_common1(int parm, int bucket, int value);
|
||||||
|
int control_common2(int parm, int bucket, int value);
|
||||||
|
|
||||||
|
int efx_common1(int parm, int bucket, int type, int value);
|
||||||
|
|
||||||
void updateAmp(void);
|
void updateAmp(void);
|
||||||
void updateReverb(void);
|
void updateReverb(void);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // MUSTANG_H
|
#endif // MUSTANG_H
|
||||||
|
|
|
||||||
|
|
@ -42,90 +42,28 @@ void message_action( double deltatime, std::vector< unsigned char > *message, vo
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
int cc = (*message)[1];
|
int cc = (*message)[1];
|
||||||
int value = (*message)[2];
|
int value = (*message)[2];
|
||||||
AmpCC *ampModel = mustang.getAmp();
|
|
||||||
ReverbCC *reverbModel = mustang.getReverb();
|
|
||||||
|
|
||||||
// Effects on/off
|
// Effects on/off
|
||||||
if ( cc >= 23 && cc <= 26 ) {
|
if ( cc >= 23 && cc <= 26 ) {
|
||||||
// Translate 23..26 --> 2..5 (current state index)
|
rc = mustang.effect_toggle( cc, value );
|
||||||
int index = cc - 21;
|
|
||||||
int state;
|
|
||||||
if ( value >= 0 && value <= 63 ) state = 0;
|
|
||||||
else if ( value > 63 && value <= 127 ) state = 1;
|
|
||||||
rc = mustang.effect_toggle( index, state );
|
|
||||||
}
|
}
|
||||||
// Set reverb model
|
// Set reverb model
|
||||||
else if ( cc == 58 ) {
|
else if ( cc == 58 ) {
|
||||||
rc = mustang.setReverb( value );
|
rc = mustang.setReverb( value );
|
||||||
}
|
}
|
||||||
// Level
|
// Reverb CC handler
|
||||||
else if ( cc == 59 ) {
|
else if ( cc >= 59 && cc <= 63 ) {
|
||||||
rc = reverbModel->cc59( value );
|
ReverbCC *reverbModel = mustang.getReverb();
|
||||||
}
|
rc = reverbModel->dispatch( cc, value );
|
||||||
// Decay
|
|
||||||
else if ( cc == 60 ) {
|
|
||||||
rc = reverbModel->cc60( value );
|
|
||||||
}
|
|
||||||
// Dwell
|
|
||||||
else if ( cc == 61 ) {
|
|
||||||
rc = reverbModel->cc61( value );
|
|
||||||
}
|
|
||||||
// Diffusion
|
|
||||||
else if ( cc == 62 ) {
|
|
||||||
rc = reverbModel->cc62( value );
|
|
||||||
}
|
|
||||||
// Tone
|
|
||||||
else if ( cc == 63 ) {
|
|
||||||
rc = reverbModel->cc63( value );
|
|
||||||
}
|
}
|
||||||
// Set amp model
|
// Set amp model
|
||||||
else if ( cc == 68 ) {
|
else if ( cc == 68 ) {
|
||||||
// fprintf( stderr, "DEBUG: %d\n", value );
|
|
||||||
rc = mustang.setAmp( value );
|
rc = mustang.setAmp( value );
|
||||||
}
|
}
|
||||||
// Gain
|
// Amp CC Handler
|
||||||
else if ( cc == 69 ) {
|
else if ( cc >= 69 && cc <= 79 ) {
|
||||||
rc = ampModel->cc69( value );
|
AmpCC *ampModel = mustang.getAmp();
|
||||||
}
|
rc = ampModel->dispatch( cc, value );
|
||||||
// Channel volume
|
|
||||||
else if ( cc == 70 ) {
|
|
||||||
rc = ampModel->cc70( value );
|
|
||||||
}
|
|
||||||
// Treble
|
|
||||||
else if ( cc == 71 ) {
|
|
||||||
rc = ampModel->cc71( value );
|
|
||||||
}
|
|
||||||
// Mid
|
|
||||||
else if ( cc == 72 ) {
|
|
||||||
rc = ampModel->cc72( value );
|
|
||||||
}
|
|
||||||
// Bass
|
|
||||||
else if ( cc == 73 ) {
|
|
||||||
rc = ampModel->cc73( value );
|
|
||||||
}
|
|
||||||
// Sag
|
|
||||||
else if ( cc == 74 ) {
|
|
||||||
rc = ampModel->cc74( value );
|
|
||||||
}
|
|
||||||
// Bias
|
|
||||||
else if ( cc == 75 ) {
|
|
||||||
rc = ampModel->cc75( value );
|
|
||||||
}
|
|
||||||
// Noise Gate
|
|
||||||
else if ( cc == 76 ) {
|
|
||||||
rc = ampModel->cc76( value );
|
|
||||||
}
|
|
||||||
// Cabinet
|
|
||||||
else if ( cc == 77 ) {
|
|
||||||
rc = ampModel->cc77( value );
|
|
||||||
}
|
|
||||||
// Presence / Gain2 / Cut
|
|
||||||
else if ( cc == 78 ) {
|
|
||||||
rc = ampModel->cc78( value );
|
|
||||||
}
|
|
||||||
// Blend / Master Volume
|
|
||||||
else if ( cc == 79 ) {
|
|
||||||
rc = ampModel->cc79( value );
|
|
||||||
}
|
}
|
||||||
if ( rc ) {
|
if ( rc ) {
|
||||||
fprintf( stderr, "Error: CC#%d failed. RC = %d\n", cc, rc );
|
fprintf( stderr, "Error: CC#%d failed. RC = %d\n", cc, rc );
|
||||||
|
|
|
||||||
45
reverb.cpp
45
reverb.cpp
|
|
@ -2,28 +2,63 @@
|
||||||
#include "reverb.h"
|
#include "reverb.h"
|
||||||
#include "mustang.h"
|
#include "mustang.h"
|
||||||
|
|
||||||
|
int
|
||||||
|
ReverbCC::efx_common1(int parm, int bucket, int type, int value) {
|
||||||
|
return amp->efx_common1( parm, bucket, type, value );
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
ReverbCC::dispatch( int cc, int value ) {
|
||||||
|
|
||||||
|
switch ( cc ) {
|
||||||
|
case 59:
|
||||||
|
// Level
|
||||||
|
return cc59( value );
|
||||||
|
break;
|
||||||
|
case 60:
|
||||||
|
// Decay
|
||||||
|
return cc60( value );
|
||||||
|
break;
|
||||||
|
case 61:
|
||||||
|
// Dwell
|
||||||
|
return cc61( value );
|
||||||
|
break;
|
||||||
|
case 62:
|
||||||
|
// Diffusion
|
||||||
|
return cc62( value );
|
||||||
|
break;
|
||||||
|
case 63:
|
||||||
|
// Tone
|
||||||
|
return cc63( value );
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ReverbCC::cc59( int value ) {
|
ReverbCC::cc59( int value ) {
|
||||||
return amp->efx_common1( 0x00, 0x0b, REVERB_STATE, value );
|
return efx_common1( 0x00, 0x0b, REVERB_STATE, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ReverbCC::cc60( int value ) {
|
ReverbCC::cc60( int value ) {
|
||||||
return amp->efx_common1( 0x01, 0x0b, REVERB_STATE, value );
|
return efx_common1( 0x01, 0x0b, REVERB_STATE, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ReverbCC::cc61( int value ) {
|
ReverbCC::cc61( int value ) {
|
||||||
return amp->efx_common1( 0x02, 0x0b, REVERB_STATE, value );
|
return efx_common1( 0x02, 0x0b, REVERB_STATE, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ReverbCC::cc62( int value ) {
|
ReverbCC::cc62( int value ) {
|
||||||
return amp->efx_common1( 0x03, 0x0b, REVERB_STATE, value );
|
return efx_common1( 0x03, 0x0b, REVERB_STATE, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
ReverbCC::cc63( int value ) {
|
ReverbCC::cc63( int value ) {
|
||||||
return amp->efx_common1( 0x04, 0x0b, REVERB_STATE, value );
|
return efx_common1( 0x04, 0x0b, REVERB_STATE, value );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
7
reverb.h
7
reverb.h
|
|
@ -8,13 +8,16 @@ class Mustang;
|
||||||
class ReverbCC {
|
class ReverbCC {
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
Mustang * amp;
|
Mustang * amp;
|
||||||
|
|
||||||
public:
|
int efx_common1(int parm, int bucket, int type, int value);
|
||||||
|
|
||||||
|
public:
|
||||||
ReverbCC( Mustang * theAmp ) : amp(theAmp) {}
|
ReverbCC( Mustang * theAmp ) : amp(theAmp) {}
|
||||||
|
|
||||||
|
int dispatch( int cc, int value );
|
||||||
|
|
||||||
|
private:
|
||||||
// Level
|
// Level
|
||||||
int cc59( int value );
|
int cc59( int value );
|
||||||
// Decay
|
// Decay
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue