add store_preset_name

This commit is contained in:
Tomasz Moń
2009-03-01 10:05:24 +01:00
parent 709406f3ef
commit 966fc748af
2 changed files with 33 additions and 1 deletions

33
gdigi.c
View File

@@ -78,7 +78,6 @@ void send_data(char *data, int length)
open_device(); open_device();
snd_rawmidi_write(output, data, length); snd_rawmidi_write(output, data, length);
snd_rawmidi_drain(output);
} }
/* /*
@@ -235,6 +234,38 @@ void set_preset_level(int level)
set_option(PRESET_LEVEL, PRESET_POSITION, level); set_option(PRESET_LEVEL, PRESET_POSITION, level);
} }
void store_preset_name(int x, gchar *name)
{
static char set_name[] = {0xF0, 0x00, 0x00, 0x10, 0x00, 0x5e, 0x02, 0x39, 0x00, 0x04, 0x00, 0x01, 0x00 /* preset number */, 0x00 /* name starts here */, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
set_name[12] = x;
int a;
int b;
b = 0;
for (a=0; (name != NULL && a<strlen(name)) && a<10 ; a++) {
if (a == 3) {
set_name[13+a] = 0x00;
b++;
}
set_name[13+a+b] = name[a];
}
if (a == 3) {
set_name[13+a+1+b] = 0x00;
a++;
} else
set_name[13+a+b] = 0x00;
set_name[13+a+1+b] = 0x00;
set_name[13+a+3+b] = 0xF7;
set_name[13+a+2+b] = calculate_checksum(set_name, 13+a+4+b, 13+a+2+b);
send_data(set_name, 14+a+3+b);
switch_preset(PRESETS_USER, x);
}
/* x = 0 to 59 (preset number) */ /* x = 0 to 59 (preset number) */
void set_preset_name(int x, gchar *name) void set_preset_name(int x, gchar *name)
{ {

View File

@@ -496,6 +496,7 @@ typedef enum {
void set_option(guint id, guint position, guint value); void set_option(guint id, guint position, guint value);
void switch_preset(guint bank, guint x); void switch_preset(guint bank, guint x);
void store_preset_name(int x, gchar *name);
void set_preset_level(int level); void set_preset_level(int level);
GStrv query_preset_names(PresetBank bank); GStrv query_preset_names(PresetBank bank);