From 48100b42e10bac14d924186b8377ccb17fc57048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Mo=C5=84?= Date: Tue, 3 Feb 2009 22:47:24 +0100 Subject: [PATCH] add set_preset_name --- gdigi.c | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/gdigi.c b/gdigi.c index bb78b81..3c1175b 100644 --- a/gdigi.c +++ b/gdigi.c @@ -16,6 +16,7 @@ #include #include +#include #include "gdigi.h" #include "gui.h" @@ -979,6 +980,136 @@ void set_reverb_on_off(struct usb_dev_handle *handle, gboolean val) printf("wrote: %d\n", i); } +/* x = 0 to 59 (preset number) */ +void set_preset_name(struct usb_dev_handle *handle, int x, gchar *name) +{ + static char set_name[] = {0x04, 0xF0, 0x00, 0x00, 0x04, 0x10, 0x00, 0x5E, 0x04, 0x02, 0x29, 0x00, 0x04, 0x01, 0x00 /* preset no */, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + + int write; /* number of bytes to write */ + + set_name[14] = x; + + if (name == NULL || strlen(name) == 0) { + set_name[15] = 0x00; + set_name[16] = 0x06; + set_name[18] = 0xF7; + set_name[19] = 0x00; + + set_name[17] = calculate_checksum(set_name, 20, 17) ^ 0x01; + + write = 20; + } else { + static int v[] = {15, 17, 18, 19, 21, 23, 25, 26, 27, 29}; + + int a; + for (a=0; a