From 17639a7ec36c2f558dbf9cd62f241a856efa10a3 Mon Sep 17 00:00:00 2001 From: Nunuhara Cabbage Date: Thu, 13 May 2021 21:06:23 -0700 Subject: [PATCH] Support reading AliceStart.ini --- src/system4.c | 17 ++++++++++++++--- subprojects/libsys4 | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/system4.c b/src/system4.c index e822ad3..c585e5e 100644 --- a/src/system4.c +++ b/src/system4.c @@ -111,9 +111,17 @@ static void read_mixer_channels(struct ini_entry *entry) WARNING("No name given for VolumeValancer[%d]", i); continue; } - if (entry->value.list[i].type != INI_STRING) - ERROR("ini value for 'VolumeValancer' list entry is not a string"); - config.mixer_channels[i] = strdup(entry->value.list[i].s->text); + if (entry->value.list[i].type == INI_STRING) { + config.mixer_channels[i] = strdup(entry->value.list[i].s->text); + } else if (entry->value.list[i].type == INI_LIST) { + if (entry->value.list[i].list_size != 2) + ERROR("ini value for 'VolumeValancer' is list of wrong size"); + if (entry->value.list[i].list[0].type != INI_STRING) + ERROR("ini value for 'VolumeValancer' name is not a string"); + if (entry->value.list[i].list[1].type != INI_INTEGER) + ERROR("ini value for 'VolumeValancer' level is not an integer"); + config.mixer_channels[i] = strdup(entry->value.list[i].list[0].s->text); + } } } @@ -339,6 +347,9 @@ static void config_init_with_dir(const char *dir) { char path[PATH_MAX]; snprintf(path, PATH_MAX, "%s/System40.ini", dir); + if (!file_exists(path)) { + snprintf(path, PATH_MAX, "%s/AliceStart.ini", dir); + } config_init_with_ini(path); } diff --git a/subprojects/libsys4 b/subprojects/libsys4 index ea9e1ec..979101b 160000 --- a/subprojects/libsys4 +++ b/subprojects/libsys4 @@ -1 +1 @@ -Subproject commit ea9e1ec5cd041a60af58a53b22054b50a5abb68c +Subproject commit 979101b2111c12736f0f9ccdb85b13df130ee477