- Fix drumkit name parsing from drumkit.xml by adding <componentList> support
- Fix compile warning on compar_kit()
This commit is contained in:
parent
3d8e11423b
commit
17383c6a99
@ -87,6 +87,7 @@ struct kit_info {
|
||||
struct hp_info {
|
||||
char scan_only;
|
||||
char in_info;
|
||||
char in_component_list;
|
||||
char in_instrument_list;
|
||||
char in_instrument;
|
||||
char in_layer;
|
||||
@ -105,22 +106,30 @@ startElement(void *userData, const char *name, const char **atts)
|
||||
struct hp_info* info = (struct hp_info*)userData;
|
||||
info->cur_off = 0;
|
||||
if (info->in_info) {
|
||||
if (info->in_instrument) {
|
||||
if (!strcmp(name,"layer") && !info->scan_only) {
|
||||
info->in_layer = 1;
|
||||
info->cur_layer = malloc(sizeof(struct instrument_layer));
|
||||
memset(info->cur_layer,0,sizeof(struct instrument_layer));
|
||||
if (!info->in_component_list) {
|
||||
if (!strcmp(name,"componentList")) {
|
||||
info->in_component_list = 1;
|
||||
}
|
||||
}
|
||||
if (info->in_instrument_list) {
|
||||
if (!strcmp(name,"instrument")) {
|
||||
info->in_instrument = 1;
|
||||
info->cur_instrument = malloc(sizeof(struct instrument_info));
|
||||
memset(info->cur_instrument,0,sizeof(struct instrument_info));
|
||||
else
|
||||
{
|
||||
if (info->in_instrument) {
|
||||
if (!strcmp(name,"layer") && !info->scan_only) {
|
||||
info->in_layer = 1;
|
||||
info->cur_layer = malloc(sizeof(struct instrument_layer));
|
||||
memset(info->cur_layer,0,sizeof(struct instrument_layer));
|
||||
}
|
||||
}
|
||||
if (info->in_instrument_list) {
|
||||
if (!strcmp(name,"instrument")) {
|
||||
info->in_instrument = 1;
|
||||
info->cur_instrument = malloc(sizeof(struct instrument_info));
|
||||
memset(info->cur_instrument,0,sizeof(struct instrument_info));
|
||||
}
|
||||
} else {
|
||||
if (!strcmp(name,"instrumentList"))
|
||||
info->in_instrument_list = 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!strcmp(name,"instrumentList"))
|
||||
info->in_instrument_list = 1;
|
||||
}
|
||||
} else {
|
||||
if (!strcmp(name,"drumkit_info"))
|
||||
@ -135,7 +144,7 @@ endElement(void *userData, const char *name)
|
||||
if (info->cur_off == MAX_CHAR_DATA) info->cur_off--;
|
||||
info->cur_buf[info->cur_off]='\0';
|
||||
|
||||
if (info->in_info && !info->in_instrument_list && !strcmp(name,"name"))
|
||||
if (info->in_info && !info->in_component_list && !info->in_instrument_list && !strcmp(name,"name"))
|
||||
info->kit_info->name = strdup(info->cur_buf);
|
||||
if (info->scan_only && info->in_info && !info->in_instrument_list && !strcmp(name,"info"))
|
||||
info->kit_info->desc = strdup(info->cur_buf);
|
||||
@ -187,6 +196,7 @@ endElement(void *userData, const char *name)
|
||||
info->cur_instrument = NULL;
|
||||
info->in_instrument = 0;
|
||||
}
|
||||
if (info->in_component_list && !strcmp(name,"componentList")) info->in_component_list = 0;
|
||||
if (info->in_instrument_list && !strcmp(name,"instrumentList")) info->in_instrument_list = 0;
|
||||
if (info->in_info && !strcmp(name,"drumkit_info")) info->in_info = 0;
|
||||
}
|
||||
@ -232,9 +242,9 @@ static char* expand_path(char* path, char* buf) {
|
||||
|
||||
|
||||
|
||||
static int *compar_kit(const void *p1, const void *p2)
|
||||
static int compar_kit(const void *p1, const void *p2)
|
||||
{
|
||||
return (int) strcmp( (* (scanned_kit **) p1)->name, (* (scanned_kit **) p2)->name);
|
||||
return (int) strcmp( (* (scanned_kit **) p1)->name, (* (scanned_kit **) p2)->name);
|
||||
}
|
||||
|
||||
|
||||
@ -339,7 +349,7 @@ kits* scan_kits() {
|
||||
cp = 0;
|
||||
struct kit_list * cur_k = scanned_kits;
|
||||
while(cur_k) {
|
||||
//printf("found kit: %s\nat:%s\n\n",cur_k->skit->name,cur_k->skit->path);
|
||||
// printf("found kit: %s\nat:%s\n\n",cur_k->skit->name,cur_k->skit->path);
|
||||
cur_k = cur_k->next;
|
||||
cp++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user