revise set_wah_type, set_comp_type, set_pickup_type and set_eq_type

This commit is contained in:
Tomasz Moń
2009-02-22 22:37:29 +01:00
parent 1c4ff62baa
commit 886f01c1e4
2 changed files with 52 additions and 38 deletions

67
gdigi.c
View File

@@ -189,14 +189,16 @@ void set_wah_level(int level)
void set_wah_type(int type)
{
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x2C, 0x00, 0x00, 0x03, 0x01, 0x00 /* type */, 0x00 /* confirm */, 0xF7};
/* ID = 128 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x2C, 0x00, 0x00, /* ??? */
0x03, /* seems to be position */
0x01, /* ??? */
0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) {
case WAH_TYPE_CRY: set_type[14] = 4; break;
case WAH_TYPE_FULLRANGE: set_type[14] = 5; break;
case WAH_TYPE_CLYDE: set_type[14] = 6; break;
default: break;
}
/* 8th bit of type is always 1 - check how does it affect command */
set_type[14] = (type & 0x007F);
set_type[15] = calculate_checksum(set_type, sizeof(set_type), 15) ^ 0x07;
@@ -234,13 +236,16 @@ void set_comp_level(int level)
void set_comp_type(int type)
{
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x2C, 0x00, 0x4F, 0x04, 0x01, 0x00 /* type */, 0x00 /* checksum */, 0xF7};
/* ID = 207 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x2C, 0x00, 0x4F, /* ??? */
0x04, /* seems to be position */
0x01, /* ??? */
0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) {
case COMP_TYPE_DIGI: set_type[14] = 0x43; break;
case COMP_TYPE_CS: set_type[14] = 0x44; break;
default: break;
}
/* 8th bit of type is always 1 - check how does it affect command */
set_type[14] = (type & 0x007F);
set_type[15] = calculate_checksum(set_type, sizeof(set_type), 15) ^ 0x07;
@@ -276,13 +281,14 @@ void switch_system_preset(int x)
void set_pickup_type(int type)
{
static char pickup[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x00, 0x00, 0x40, 0x02, 0x00 /* type1 */, 0x00 /* checksum */, 0xF7};
/* ID = 64 */
static char pickup[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x00, 0x00, 0x40, /* ??? */
0x02, /* seems to be position */
0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) {
case PICKUP_TYPE_HB_SC: pickup[13] = 0x42; break;
case PICKUP_TYPE_SC_HB: pickup[13] = 0x41; break;
default: break;
}
pickup[13] = type;
pickup[14] = calculate_checksum(pickup, sizeof(pickup), 14) ^ 0x07;
@@ -296,6 +302,7 @@ void set_pickup_on_off(gboolean val)
void set_dist_type(int type)
{
/* ID = 2432 */
static char set_dist[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x28, 0x09, 0x00, /* ??? */
0x06, /* seems to be position */
@@ -329,15 +336,17 @@ void set_preset_level(int level)
void set_eq_type(int type)
{
static char set_eq[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41, 0x2A, 0x0C, 0x02, 0x18, 0x02, 0x05, 0x00 /* type1 */, 0x00 /* checksum */, 0xF7};
/* ID = 3202 */
static char set_eq[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x2A, 0x0C, 0x02,
0x18, /* seems to be position */
0x02, /* ??? */
0x05, 0x00, /* type */
0x00, /* checksum */ 0xF7};
switch (type) {
case EQ_TYPE_BRIGHT: set_eq[15] = 0x42; break;
case EQ_TYPE_MIDBOOST: set_eq[15] = 0x40; break;
case EQ_TYPE_SCOOP: set_eq[15] = 0x41; break;
case EQ_TYPE_WARM: set_eq[15] = 0x43; break;
default: break;
}
/* 8th bit of type is always 1 - check how does it affect command */
set_eq[14] = ((type & 0xFF00) >> 8);
set_eq[15] = ((type & 0x007F));
set_eq[16] = calculate_checksum(set_eq, sizeof(set_eq), 16) ^ 0x07;
@@ -483,6 +492,7 @@ void set_eq_on_off(gboolean val)
void set_noisegate_type(int type)
{
/* ID = 704 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x28, 0x02, 0x40, /* ??? */
0x0C, /* seems to be position */
@@ -516,6 +526,7 @@ void set_chorusfx_option(guint32 option, int x)
void set_chorusfx_type(int type)
{
/* ID = 768 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x00 /* ? */, 0x03, 0x00, /* ??? */
0x0E, /* seems to be position */
@@ -563,6 +574,7 @@ void set_delay_time(int x)
void set_delay_type(int type)
{
/* ID = 1856 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x08, 0x07, 0x40, /* ??? */
0x0F, /* seems to be position */
@@ -596,6 +608,7 @@ void set_reverb_option(guint32 option, int x)
void set_reverb_type(int type)
{
/* ID = 1920 */
static char set_type[] = {0x00, 0xF0, 0x00, 0x00, 0x10, 0x00, 0x5E, 0x02, 0x41,
0x28, 0x07, 0x00, /* ??? */
0x10, /* seems to be position */

23
gdigi.h
View File

@@ -18,9 +18,9 @@
#include <glib.h>
enum {
WAH_TYPE_CRY = 0,
WAH_TYPE_FULLRANGE,
WAH_TYPE_CLYDE
WAH_TYPE_CRY = 132,
WAH_TYPE_FULLRANGE = 133,
WAH_TYPE_CLYDE = 134
};
#define WAH_POSITION_MIN_MAX 20
@@ -34,8 +34,8 @@ enum {
#define WAH_LEVEL 133
enum {
COMP_TYPE_DIGI = 0,
COMP_TYPE_CS
COMP_TYPE_DIGI = 195,
COMP_TYPE_CS = 196
};
#define COMP_ON_OFF 193
@@ -47,8 +47,8 @@ enum {
#define COMP_LEVEL 210
enum {
PICKUP_TYPE_HB_SC = 0,
PICKUP_TYPE_SC_HB
PICKUP_TYPE_HB_SC = 66,
PICKUP_TYPE_SC_HB = 65
};
#define PICKUP_ON_OFF 65
@@ -119,10 +119,10 @@ enum {
#define PRESET_LEVEL 2626
enum {
EQ_TYPE_BRIGHT = 0,
EQ_TYPE_MIDBOOST,
EQ_TYPE_SCOOP,
EQ_TYPE_WARM
EQ_TYPE_BRIGHT = 1474,
EQ_TYPE_MIDBOOST = 1472,
EQ_TYPE_SCOOP = 1473,
EQ_TYPE_WARM = 1475
};
#define AMP_POSITION 8
@@ -136,6 +136,7 @@ enum {
#define EQ_BASS 3203
#define EQ_MID 3204
#define EQ_TREBLE 3205
enum {
NOISEGATE_GATE = 768,
NOISEGATE_SWELL = 769