add set_pickup_type and set_pickup_on_off
This commit is contained in:
47
gdigi.c
47
gdigi.c
@@ -34,6 +34,16 @@ static char magic3[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x
|
||||
static char magic4[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x2B, 0x00, 0x04, 0x00, 0x01, 0x77, 0x05, 0xF7, 0x00, 0x00};
|
||||
static char magic5[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x3A, 0x00, 0x04, 0x00, 0x01, 0x77, 0x05, 0xF7, 0x00, 0x00};
|
||||
|
||||
|
||||
/* xedit calls those after calling hbsc pickup change */
|
||||
static char magic12[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x3A, 0x00, 0x04, 0x00, 0x01, 0x77, 0x05, 0xF7, 0x00, 0x00};
|
||||
static char magic13[] = {0x07, 0x41, 0x73, 0xF7, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x7E, 0x00, 0x04, 0x00, 0x01, 0x77, 0x05, 0xF7, 0x00, 0x00};
|
||||
|
||||
/* xedit calls those after calling schb pickup change */
|
||||
static char magic22[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x41, 0x00, 0x04, 0x00, 0x01, 0x77, 0x05, 0xF7, 0x00, 0x00};
|
||||
static char magic23[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x3A, 0x00, 0x04, 0x00, 0x01, 0x77, 0x05, 0xF7, 0x00, 0x00};
|
||||
static char magic24[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x3B, 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x6E, 0xF7, 0x00};
|
||||
|
||||
int read_device(struct usb_dev_handle *handle, int bytes)
|
||||
{
|
||||
int i, x;
|
||||
@@ -393,6 +403,43 @@ void switch_system_preset(struct usb_dev_handle *handle, int x)
|
||||
printf("wrote: %d\n", i);
|
||||
}
|
||||
|
||||
enum {
|
||||
PICKUP_TYPE_HB_SC = 0,
|
||||
PICKUP_TYPE_SC_HB
|
||||
};
|
||||
|
||||
void set_pickup_type(struct usb_dev_handle *handle, int type)
|
||||
{
|
||||
static char pickup[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x41, 0x00, 0x04, 0x00, 0x40, 0x02, 0x07, 0x00 /* type1 */, 0x00 /* type2 */, 0xF7};
|
||||
|
||||
switch (type) {
|
||||
case PICKUP_TYPE_HB_SC: pickup[17] = 0x42; pickup[18] = 0x0D; break;
|
||||
case PICKUP_TYPE_SC_HB: pickup[17] = 0x41; pickup[18] = 0x0E; break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
int i;
|
||||
i = usb_bulk_write(handle, 4, pickup, sizeof(pickup), TIMEOUT);
|
||||
printf("wrote: %d\n", i);
|
||||
}
|
||||
|
||||
void set_pickup_on_off(struct usb_dev_handle *handle, gboolean val)
|
||||
{
|
||||
static char set_pickup[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x41, 0x00, 0x04, 0x00, 0x41, 0x02, 0x07, 0x00 /* on/off */, 0x00 /* confirm */, 0xF7};
|
||||
|
||||
if (val == FALSE) { /* turn pickup off */
|
||||
set_pickup[17] = 0;
|
||||
set_pickup[18] = 0x4E;
|
||||
} else { /* turn pickup on */
|
||||
set_pickup[17] = 1;
|
||||
set_pickup[18] = 0x4F;
|
||||
}
|
||||
|
||||
int i;
|
||||
i = usb_bulk_write(handle, 4, set_pickup, sizeof(set_pickup), TIMEOUT);
|
||||
printf("wrote: %d\n", i);
|
||||
}
|
||||
|
||||
void value_changed_cb(GtkSpinButton *spinbutton, void (*callback)(struct usb_dev_handle*, int))
|
||||
{
|
||||
int val = gtk_spin_button_get_value_as_int(spinbutton);
|
||||
|
||||
Reference in New Issue
Block a user