diff --git a/gdigi.c b/gdigi.c index 1077e81..522c549 100644 --- a/gdigi.c +++ b/gdigi.c @@ -692,17 +692,7 @@ void set_chorusfx_type(int type) void set_chorusfx_on_off(gboolean val) { - static char set_chorus[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x03, 0x01, 0x0E, 0x00 /* on/off */, 0x00 /* checksum */, 0xF7}; - - if (val == FALSE) { /* turn chorusfx off */ - set_chorus[13] = 0; - } else { /* turn chorusfx on */ - set_chorus[13] = 1; - } - - set_chorus[14] = calculate_checksum(set_chorus, sizeof(set_chorus), 14) ^ 0x07; - - send_data(set_chorus, sizeof(set_chorus)); + set_option(CHORUSFX_ON_OFF, CHORUSFX_POSITION, (val == TRUE) ? 1 : 0); } /* x = 0 to 139 */ @@ -745,28 +735,12 @@ void set_delay_type(int type) void set_delay_option(guint32 option, int x) { - static char set_option[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x07, 0x00 /* option */, 0x0F, 0x00 /* value */, 0x00 /* checksum */, 0xF7}; - - set_option[11] = option; - set_option[13] = x; - set_option[14] = calculate_checksum(set_option, sizeof(set_option), 14) ^ 0x07; - - send_data(set_option, sizeof(set_option)); + set_option(option, DELAY_POSITION, x); } void set_delay_on_off(gboolean val) { - static char set_delay[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x07, 0x41, 0x0F, 0x00 /* on/off */, 0x00 /* checksum */, 0xF7}; - - if (val == FALSE) { /* turn delay off */ - set_delay[13] = 0; - } else { /* turn delay on */ - set_delay[13] = 1; - } - - set_delay[14] = calculate_checksum(set_delay, sizeof(set_delay), 14) ^ 0x07; - - send_data(set_delay, sizeof(set_delay)); + set_option(DELAY_ON_OFF, DELAY_POSITION, (val == TRUE) ? 1 : 0); } /* x = 0 to 15 (predelay), otherwise 0 to 99 */ diff --git a/gdigi.h b/gdigi.h index 634c737..d3bd8c0 100644 --- a/gdigi.h +++ b/gdigi.h @@ -134,6 +134,7 @@ enum { CHORUS_TYPE_IPS }; +#define CHORUSFX_ON_OFF 769 #define CHORUSFX_POSITION 14 #define CE_CHORUS_SPEED 837 @@ -286,27 +287,30 @@ enum { DELAY_TYPE_TAPE }; -#define ANALOG_LEVEL 0x44 -#define ANALOG_REPEATS 0x47 +#define DELAY_ON_OFF 1857 +#define DELAY_POSITION 15 -#define DIGITAL_LEVEL 0x44 -#define DIGITAL_REPEATS 0x47 -#define DIGITAL_DUCKER_THRESH 0x61 -#define DIGITAL_DUCKER_LEVEL 0x62 +#define ANALOG_LEVEL 1860 +#define ANALOG_REPEATS 1863 -#define MODULATED_LEVEL 0x44 -#define MODULATED_REPEATS 0x47 -#define MODULATED_DEPTH 0x51 +#define DIGITAL_LEVEL 1860 +#define DIGITAL_REPEATS 1863 +#define DIGITAL_DUCKER_THRESH 1889 +#define DIGITAL_DUCKER_LEVEL 1890 -#define PONG_LEVEL 0x44 -#define PONG_REPEATS 0x47 -#define PONG_DUCKER_THRESH 0x61 -#define PONG_DUCKER_LEVEL 0x62 +#define MODULATED_LEVEL 1860 +#define MODULATED_REPEATS 1863 +#define MODULATED_DEPTH 1873 -#define TAPE_LEVEL 0x44 -#define TAPE_REPEATS 0x47 -#define TAPE_WOW 0x63 -#define TAPE_FLUTTER 0x64 +#define PONG_LEVEL 1860 +#define PONG_REPEATS 1863 +#define PONG_DUCKER_THRESH 1889 +#define PONG_DUCKER_LEVEL 1890 + +#define TAPE_LEVEL 1860 +#define TAPE_REPEATS 1863 +#define TAPE_WOW 1891 +#define TAPE_FLUTTER 1892 enum { REVERB_TYPE_TWIN = 0,