From c4b1fbff77b87f0eca497dfe4c5499cd6ac0f01b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mo=C5=84?= Date: Sun, 22 Feb 2009 19:11:42 +0100 Subject: [PATCH] make set_wah_min, set_wah_max, set_wah_level, set_wah_on_off, set_pickup_on_off and set_preset_level wrappers to set_option --- gdigi.c | 52 ++++++---------------------------------------------- gdigi.h | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 46 deletions(-) diff --git a/gdigi.c b/gdigi.c index 1826572..3133a4e 100644 --- a/gdigi.c +++ b/gdigi.c @@ -172,34 +172,19 @@ void set_option(guint id, guint position, guint value) /* level = 0 to 99 */ void set_wah_min(int level) { - static char set_min[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x20, 0x03, 0x14, 0x00 /* level */, 0x00 /* checksum */, 0xF7}; - - set_min[13] = level; - set_min[14] = calculate_checksum(set_min, sizeof(set_min), 14) ^ 0x07; - - send_data(set_min, sizeof(set_min)); + set_option(WAH_MIN, WAH_POSITION_MIN_MAX, level); } /* level = 0 to 99 */ void set_wah_max(int level) { - static char set_max[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x20, 0x04, 0x14, 0x00 /* level */, 0x00 /* checksum */, 0xF7}; - - set_max[13] = level; - set_max[14] = calculate_checksum(set_max, sizeof(set_max), 14) ^ 0x07; - - send_data(set_max, sizeof(set_max)); + set_option(WAH_MAX, WAH_POSITION_MIN_MAX, level); } /* level = 0 to 12 */ void set_wah_level(int level) { - static char set_level[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x20, 0x00, 0x05, 0x03, 0x00 /* level */, 0x00 /* checksum */, 0xF7}; - - set_level[13] = level; - set_level[14] = calculate_checksum(set_level, sizeof(set_level), 14) ^ 0x07; - - send_data(set_level, sizeof(set_level)); + set_option(WAH_LEVEL, WAH_POSITION, level); } void set_wah_type(int type) @@ -220,17 +205,7 @@ void set_wah_type(int type) void set_wah_on_off(gboolean val) { - static char set_wah[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x20, 0x00, 0x01, 0x03, 0x00 /* on/off */, 0x00 /* checksum */, 0xF7}; - - if (val == FALSE) { /* turn wah off */ - set_wah[13] = 0; - } else { /* turn wah on */ - set_wah[13] = 1; - } - - set_wah[14] = calculate_checksum(set_wah, sizeof(set_wah), 14) ^ 0x07; - - send_data(set_wah, sizeof(set_wah)); + set_option(WAH_ON_OFF, WAH_POSITION, (val == TRUE) ? 1 : 0); } /* level = 0 to 99 */ @@ -316,17 +291,7 @@ void set_pickup_type(int type) void set_pickup_on_off(gboolean val) { - static char set_pickup[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x00, 0x41, 0x02, 0x00 /* on/off */, 0x00 /* checksum */, 0xF7}; - - if (val == FALSE) { /* turn pickup off */ - set_pickup[13] = 0; - } else { /* turn pickup on */ - set_pickup[13] = 1; - } - - set_pickup[14] = calculate_checksum(set_pickup, sizeof(set_pickup), 14) ^ 0x07; - - send_data(set_pickup, sizeof(set_pickup)); + set_option(PICKUP_ON_OFF, PICKUP_POSITION, (val == TRUE) ? 1 : 0); } void set_dist_type(int type) @@ -368,12 +333,7 @@ void set_dist_on_off(gboolean val) /* level = 0 to 99 */ void set_preset_level(int level) { - static char set_level[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x0A, 0x42, 0x12, 0x00 /* value */, 0x00 /* checksum */, 0xF7}; - - set_level[13] = level; - set_level[14] = calculate_checksum(set_level, sizeof(set_level), 14) ^ 0x07; - - send_data(set_level, sizeof(set_level)); + set_option(PRESET_LEVEL, PRESET_POSITION, level); } void set_eq_type(int type) diff --git a/gdigi.h b/gdigi.h index 8040a57..38e6909 100644 --- a/gdigi.h +++ b/gdigi.h @@ -23,6 +23,16 @@ enum { WAH_TYPE_CLYDE }; +#define WAH_POSITION_MIN_MAX 20 + +#define WAH_MIN 8195 +#define WAH_MAX 8196 + +#define WAH_ON_OFF 129 +#define WAH_POSITION 3 + +#define WAH_LEVEL 133 + enum { COMP_TYPE_DIGI = 0, COMP_TYPE_CS @@ -41,6 +51,9 @@ enum { PICKUP_TYPE_SC_HB }; +#define PICKUP_ON_OFF 65 +#define PICKUP_POSITION 2 + enum { DIST_TYPE_SCREAMER = 0, DIST_TYPE_808, @@ -102,6 +115,9 @@ enum { #define DIST_MP_TONE 2446 #define DIST_MP_VOLUME 2447 +#define PRESET_POSITION 18 +#define PRESET_LEVEL 2626 + enum { EQ_TYPE_BRIGHT = 0, EQ_TYPE_MIDBOOST,