revise create_preset_from_data

This commit is contained in:
Tomasz Moń
2009-05-11 23:32:17 +02:00
parent def4917a07
commit cbd07a9709

View File

@@ -183,27 +183,41 @@ Preset *create_preset_from_data(GList *list)
{
GString *data;
GList *iter;
gint total;
gint n;
gint x;
gint total, n, x;
gint bank, number, modified;
gchar *name;
g_return_val_if_fail(list != NULL, NULL);
iter = list;
do {
data = (GString*) iter->data;
iter = g_list_next(iter);
} while (get_message_id(data) != RECEIVE_PRESET_PARAMETERS);
Preset *preset = g_slice_new(Preset);
preset->name = NULL;
preset->params = NULL;
iter = list;
for (iter = list; iter; iter = g_list_next(iter)) {
data = (GString*) iter->data;
switch (get_message_id(data)) {
case RECEIVE_PRESET_START:
bank = (unsigned char)data->str[8];
number = (unsigned char)data->str[9];
name = g_strdup(&data->str[10]);
modified = (unsigned char)data->str[11+strlen(name)];
if ((bank == PRESETS_EDIT_BUFFER) && (number == 0)) {
g_message("Received current edit buffer");
} else {
g_message("Received preset %d from bank %d", number, bank);
}
g_message("Modified flag: %d Name: %s", modified, name);
preset->name = name;
break;
case RECEIVE_PRESET_PARAMETERS:
x = 0x09;
n = 0;
total = (unsigned char)data->str[x];
x++;
Preset *preset = g_slice_new(Preset);
preset->name = NULL; /* TODO */
preset->params = NULL;
do {
SettingParam *param = setting_param_new_from_data(&data->str[x], &x);
n++;
@@ -212,6 +226,13 @@ Preset *create_preset_from_data(GList *list)
} while ((x < data->len) && n<total);
g_message("TOTAL %d", total);
preset->params = g_list_reverse(preset->params);
break;
case RECEIVE_PRESET_END:
break;
default:
g_message("Unhandled message in preset messages list");
}
}
return preset;
}