+ struct FileInfo *file_list = artwork_info->file_list;
+ struct ConfigInfo *suffix_list = artwork_info->suffix_list;
+ int num_file_list_entries = artwork_info->num_file_list_entries;
+ int num_suffix_list_entries = artwork_info->num_suffix_list_entries;
+ char *filename = getCustomArtworkConfigFilename(artwork_info->type);
+ struct SetupFileList *setup_file_list;
+ int i, j;
+
+#if 0
+ printf("GOT CUSTOM ARTWORK CONFIG FILE '%s'\n", filename);
+#endif
+
+ /* always start with reliable default values */
+ for (i=0; i<num_file_list_entries; i++)
+ {
+ if (file_list[i].filename != NULL)
+ free(file_list[i].filename);
+ file_list[i].filename = NULL;
+
+ for (j=0; j<num_suffix_list_entries; j++)
+ file_list[i].parameter[j] = file_list[i].default_parameter[j];
+ }
+
+ if (filename == NULL)
+ return;
+
+ if ((setup_file_list = loadSetupFileList(filename)))
+ {
+ for (i=0; i<num_file_list_entries; i++)
+ {
+ char *filename = getTokenValue(setup_file_list, file_list[i].token);
+
+ if (filename)
+ for (j=0; j<num_suffix_list_entries; j++)
+ file_list[i].parameter[j] =
+ get_parameter_value(suffix_list[j].type, suffix_list[j].value);
+ else
+ filename = file_list[i].default_filename;
+
+ file_list[i].filename = getStringCopy(filename);
+
+ for (j=0; j<num_suffix_list_entries; j++)
+ {
+ char *token = getStringCat2(file_list[i].token, suffix_list[j].token);
+ char *value = getTokenValue(setup_file_list, token);
+
+ if (value != NULL)
+ file_list[i].parameter[j] =
+ get_parameter_value(suffix_list[j].type, value);
+
+ free(token);
+ }
+ }
+
+ freeSetupFileList(setup_file_list);
+
+#if 0
+ for (i=0; i<num_file_list_entries; i++)
+ {
+ printf("'%s' ", file_list[i].token);
+ if (file_list[i].filename)
+ printf("-> '%s'\n", file_list[i].filename);
+ else
+ printf("-> UNDEFINED [-> '%s']\n", file_list[i].default_filename);
+ }
+#endif
+ }