Mercurial > hg > xmms-sid
diff src/xs_config.c @ 57:85811bcd049e
Improved, re-written configuration code and lots of minor fixes
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 22 Jun 2003 11:01:03 +0000 |
parents | dae6d3c2268d |
children | 05220299c6e8 |
line wrap: on
line diff
--- a/src/xs_config.c Sun Jun 22 00:17:04 2003 +0000 +++ b/src/xs_config.c Sun Jun 22 11:01:03 2003 +0000 @@ -40,37 +40,82 @@ * Configuration specific stuff */ t_xs_cfg_item xs_cfgtable[] = { - {ATYPE_INT, &xs_cfg.fmtBitsPerSample,"fmtBitsPerSample"}, - {ATYPE_INT, &xs_cfg.fmtChannels, "fmtChannels"}, - {ATYPE_INT, &xs_cfg.fmtFrequency, "fmtFrequency"}, + {CTYPE_INT, &xs_cfg.fmtBitsPerSample, "fmtBitsPerSample"}, + {CTYPE_INT, &xs_cfg.fmtChannels, "fmtChannels"}, + {CTYPE_INT, &xs_cfg.fmtFrequency, "fmtFrequency"}, - {ATYPE_BOOL, &xs_cfg.mos8580, "mos8580"}, - {ATYPE_BOOL, &xs_cfg.emulateFilters, "emulateFilters"}, - {ATYPE_FLOAT, &xs_cfg.filterFs, "filterFs"}, - {ATYPE_FLOAT, &xs_cfg.filterFm, "filterFm"}, - {ATYPE_FLOAT, &xs_cfg.filterFt, "filterFt"}, - {ATYPE_INT, &xs_cfg.memoryMode, "memoryMode"}, - {ATYPE_INT, &xs_cfg.clockSpeed, "clockSpeed"}, - {ATYPE_BOOL, &xs_cfg.forceSpeed, "forceSpeed"}, + {CTYPE_BOOL, &xs_cfg.mos8580, "mos8580"}, + {CTYPE_BOOL, &xs_cfg.emulateFilters, "emulateFilters"}, + {CTYPE_FLOAT, &xs_cfg.filterFs, "filterFs"}, + {CTYPE_FLOAT, &xs_cfg.filterFm, "filterFm"}, + {CTYPE_FLOAT, &xs_cfg.filterFt, "filterFt"}, + {CTYPE_INT, &xs_cfg.memoryMode, "memoryMode"}, + {CTYPE_INT, &xs_cfg.clockSpeed, "clockSpeed"}, + {CTYPE_BOOL, &xs_cfg.forceSpeed, "forceSpeed"}, - {ATYPE_BOOL, &xs_cfg.oversampleEnable,"oversampleEnable"}, - {ATYPE_INT, &xs_cfg.oversampleFactor,"oversampleFactor"}, + {CTYPE_BOOL, &xs_cfg.oversampleEnable, "oversampleEnable"}, + {CTYPE_INT, &xs_cfg.oversampleFactor, "oversampleFactor"}, - {ATYPE_BOOL, &xs_cfg.playMaxTimeEnable,"playMaxTimeEnable"}, - {ATYPE_INT, &xs_cfg.playMaxTime, "playMaxTime"}, - {ATYPE_BOOL, &xs_cfg.songlenDBEnable,"songlenDBEnable"}, - {ATYPE_STR, &xs_cfg.songlenDBPath, "songlenDBPath"}, + {CTYPE_BOOL, &xs_cfg.playMaxTimeEnable, "playMaxTimeEnable"}, + {CTYPE_INT, &xs_cfg.playMaxTime, "playMaxTime"}, + {CTYPE_BOOL, &xs_cfg.songlenDBEnable, "songlenDBEnable"}, + {CTYPE_STR, &xs_cfg.songlenDBPath, "songlenDBPath"}, - {ATYPE_BOOL, &xs_cfg.stilDBEnable, "stilDBEnable"}, - {ATYPE_STR, &xs_cfg.stilDBPath, "stilDBPath"}, + {CTYPE_BOOL, &xs_cfg.stilDBEnable, "stilDBEnable"}, + {CTYPE_STR, &xs_cfg.stilDBPath, "stilDBPath"}, - {ATYPE_BOOL, &xs_cfg.detectMagic, "detectMagic"}, + {CTYPE_BOOL, &xs_cfg.detectMagic, "detectMagic"}, + {CTYPE_BOOL, &xs_cfg.alwaysRaise, "alwaysRaise"}, - {ATYPE_BOOL, &xs_cfg.titleOverride, "titleOverride"}, - {ATYPE_STR, &xs_cfg.titleFormat, "titleFormat"} + {CTYPE_BOOL, &xs_cfg.titleOverride, "titleOverride"}, + {CTYPE_STR, &xs_cfg.titleFormat, "titleFormat"} }; -const gint XS_CFGTABLE_MAX = (sizeof(xs_cfgtable) / sizeof(t_xs_cfg_item)); +const gint xs_cfgtable_max = (sizeof(xs_cfgtable) / sizeof(t_xs_cfg_item)); + + +t_xs_wid_item xs_widtable[] = { +{ WTYPE_BGROUP, CTYPE_INT, "cfg_res_16bit", &xs_cfg.fmtBitsPerSample, XS_RES_16BIT }, +{ WTYPE_BGROUP, CTYPE_INT, "cfg_res_8bit", &xs_cfg.fmtBitsPerSample, XS_RES_8BIT }, + +{ WTYPE_BGROUP, CTYPE_INT, "cfg_chn_mono", &xs_cfg.fmtChannels, XS_CHN_MONO }, +{ WTYPE_BGROUP, CTYPE_INT, "cfg_chn_stereo", &xs_cfg.fmtChannels, XS_CHN_STEREO }, +{ WTYPE_BGROUP, CTYPE_INT, "cfg_chn_autopan", &xs_cfg.fmtChannels, XS_CHN_AUTOPAN }, + +{ WTYPE_SPIN, CTYPE_INT, "cfg_samplerate", &xs_cfg.fmtFrequency, 0 }, + +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_emu_mos8580", &xs_cfg.mos8580, 0 }, +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_emu_filters", &xs_cfg.emulateFilters, 0 }, + +{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_emu_filt_fs", &xs_cfg.filterFs, 0 }, +{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_emu_filt_fm", &xs_cfg.filterFm, 0 }, +{ WTYPE_SCALE, CTYPE_FLOAT, "cfg_emu_filt_ft", &xs_cfg.filterFt, 0 }, + +{ WTYPE_BGROUP, CTYPE_INT, "cfg_emu_mem_real", &xs_cfg.memoryMode, XS_MPU_REAL }, +{ WTYPE_BGROUP, CTYPE_INT, "cfg_emu_mem_banksw", &xs_cfg.memoryMode, XS_MPU_BANK_SWITCHING }, +{ WTYPE_BGROUP, CTYPE_INT, "cfg_emu_mem_transrom", &xs_cfg.memoryMode, XS_MPU_TRANSPARENT_ROM }, +{ WTYPE_BGROUP, CTYPE_INT, "cfg_emu_mem_playsid", &xs_cfg.memoryMode, XS_MPU_PLAYSID_ENVIRONMENT }, + +{ WTYPE_BGROUP, CTYPE_INT, "cfg_emu_clock_ntsc", &xs_cfg.clockSpeed, XS_CLOCK_NTSC }, +{ WTYPE_BGROUP, CTYPE_INT, "cfg_emu_clock_pal", &xs_cfg.clockSpeed, XS_CLOCK_PAL }, +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_emu_clock_force", &xs_cfg.forceSpeed, 0 }, + +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_sld_usemaxtime", &xs_cfg.playMaxTimeEnable, 0 }, +{ WTYPE_SPIN, CTYPE_INT, "cfg_sld_maxtime", &xs_cfg.playMaxTime, 0 }, +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_sld_enable", &xs_cfg.songlenDBEnable, 0 }, +{ WTYPE_TEXT, CTYPE_STR, "cfg_sld_dbpath", &xs_cfg.songlenDBPath, 0 }, + +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_stil_enable", &xs_cfg.stilDBEnable, 0 }, +{ WTYPE_TEXT, CTYPE_STR, "cfg_stil_dbpath", &xs_cfg.stilDBPath, 0 }, + +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_detectmagic", &xs_cfg.detectMagic, 0 }, +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_alwaysraise", &xs_cfg.alwaysRaise, 0 }, + +{ WTYPE_BUTTON, CTYPE_BOOL, "cfg_ftitle_override", &xs_cfg.titleOverride, 0 }, +{ WTYPE_TEXT, CTYPE_STR, "cfg_ftitle_format", &xs_cfg.titleFormat, 0 } +}; + +const gint xs_widtable_max = (sizeof(xs_widtable) / sizeof(t_xs_wid_item)); /* @@ -99,7 +144,7 @@ XSDEBUG("initializing configuration ...\n"); /* Pre-initialize configuration structure */ - xs_cfg.fmtBitsPerSample = 16; + xs_cfg.fmtBitsPerSample = XS_RES_16BIT; xs_cfg.fmtChannels = XS_CHN_MONO; xs_cfg.fmtFrequency = 44100; @@ -128,6 +173,7 @@ xs_strcalloc(&xs_cfg.stilDBPath, "~/C64Music/DOCUMENTS/STIL.txt"); xs_cfg.detectMagic = FALSE; + xs_cfg.alwaysRaise = TRUE; #ifdef HAVE_XMMSEXTRA xs_cfg.titleOverride = FALSE; @@ -155,26 +201,26 @@ } /* Read the new settings from XMMS configuration file */ - for (i = 0; i < XS_CFGTABLE_MAX; i++) + for (i = 0; i < xs_cfgtable_max; i++) { - switch (xs_cfgtable[i].atype) { - case ATYPE_INT: - xmms_cfg_read_int(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, (gint *) xs_cfgtable[i].adata); + switch (xs_cfgtable[i].valType) { + case CTYPE_INT: + xmms_cfg_read_int(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, (gint *) xs_cfgtable[i].valData); break; - case ATYPE_BOOL: - xmms_cfg_read_boolean(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, (gboolean *) xs_cfgtable[i].adata); + case CTYPE_BOOL: + xmms_cfg_read_boolean(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, (gboolean *) xs_cfgtable[i].valData); break; - case ATYPE_FLOAT: - xmms_cfg_read_float(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, (gfloat *) xs_cfgtable[i].adata); + case CTYPE_FLOAT: + xmms_cfg_read_float(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, (gfloat *) xs_cfgtable[i].valData); break; - case ATYPE_STR: - if (xmms_cfg_read_string(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, (gchar **) &tmpStr)) + case CTYPE_STR: + if (xmms_cfg_read_string(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, (gchar **) &tmpStr)) { /* Read was successfull */ - xs_strcalloc((gchar **) xs_cfgtable[i].adata, tmpStr); + xs_strcalloc((gchar **) xs_cfgtable[i].valData, tmpStr); g_free(tmpStr); } break; @@ -220,23 +266,23 @@ /* Write the new settings to XMMS configuration file */ - for (i = 0; i < XS_CFGTABLE_MAX; i++) + for (i = 0; i < xs_cfgtable_max; i++) { - switch (xs_cfgtable[i].atype) { - case ATYPE_INT: - xmms_cfg_write_int(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, *(gint *) xs_cfgtable[i].adata); + switch (xs_cfgtable[i].valType) { + case CTYPE_INT: + xmms_cfg_write_int(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, *(gint *) xs_cfgtable[i].valData); break; - case ATYPE_BOOL: - xmms_cfg_write_boolean(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, *(gboolean *) xs_cfgtable[i].adata); + case CTYPE_BOOL: + xmms_cfg_write_boolean(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, *(gboolean *) xs_cfgtable[i].valData); break; - case ATYPE_FLOAT: - xmms_cfg_write_float(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, *(gfloat *) xs_cfgtable[i].adata); + case CTYPE_FLOAT: + xmms_cfg_write_float(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, *(gfloat *) xs_cfgtable[i].valData); break; - case ATYPE_STR: - xmms_cfg_write_string(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].aname, *(gchar **) xs_cfgtable[i].adata); + case CTYPE_STR: + xmms_cfg_write_string(cfgFile, XS_CONFIG_IDENT, xs_cfgtable[i].valName, *(gchar **) xs_cfgtable[i].valData); break; default: @@ -275,80 +321,64 @@ */ void xs_cfg_ok(void) { + gint i; + gfloat tmpValue; + XSDEBUG("get data from widgets to config...\n"); - /* Check the resolution settings */ - if (GTK_TOGGLE_BUTTON(LUW("cfg_res_16bit"))->active) - xs_cfg.fmtBitsPerSample = XS_RES_16BIT; - else - xs_cfg.fmtBitsPerSample = XS_RES_8BIT; - - - /* Channel settings */ - if (GTK_TOGGLE_BUTTON(LUW("cfg_chn_mono"))->active) - xs_cfg.fmtChannels = XS_CHN_MONO; - else - if (GTK_TOGGLE_BUTTON(LUW("cfg_chn_stereo"))->active) - xs_cfg.fmtChannels = XS_CHN_STEREO; - else - if (GTK_TOGGLE_BUTTON(LUW("cfg_chn_autopan"))->active) - xs_cfg.fmtChannels = XS_CHN_AUTOPAN; - - - /* Frequency setting */ - xs_cfg.fmtFrequency = (gint) GTK_ADJUSTMENT(LUW("cfg_samplerate"))->value; - - - /* Filter and waveform settings */ - xs_cfg.mos8580 = GTK_TOGGLE_BUTTON(LUW("cfg_emu_mos8580"))->active; - - xs_cfg.emulateFilters = GTK_TOGGLE_BUTTON(LUW("cfg_emu_filters"))->active; - - xs_cfg.filterFs = GTK_ADJUSTMENT(LUW("cfg_filt_fs_adj"))->value; - xs_cfg.filterFm = GTK_ADJUSTMENT(LUW("cfg_filt_fm_adj"))->value; - xs_cfg.filterFt = GTK_ADJUSTMENT(LUW("cfg_filt_ft_adj"))->value; - + for (i = 0; i < xs_widtable_max; i++) + { + switch (xs_widtable[i].widType) { + case WTYPE_BGROUP: + /* Check if toggle-button is active */ + if (GTK_TOGGLE_BUTTON(LUW(xs_widtable[i].widName))->active) + { + /* Yes, set the constant value */ + *((gint *) xs_widtable[i].valData) = xs_widtable[i].valSet; + } + break; + + case WTYPE_SPIN: + case WTYPE_SCALE: + /* Get the value */ + switch (xs_widtable[i].widType) { + case WTYPE_SPIN: + tmpValue = gtk_spin_button_get_adjustment( + GTK_SPIN_BUTTON(LUW(xs_widtable[i].widName)))->value; + break; + + case WTYPE_SCALE: + tmpValue = gtk_range_get_adjustment( + GTK_RANGE(LUW(xs_widtable[i].widName)))->value; + break; + } + + /* Set the value */ + switch (xs_widtable[i].valType) { + case CTYPE_INT: + *((gint *) xs_widtable[i].valData) = (gint) tmpValue; + break; - /* Memorymode settings */ - if (GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_real"))->active) - xs_cfg.memoryMode = XS_MPU_REAL; - else - if (GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_banksw"))->active) - xs_cfg.memoryMode = XS_MPU_BANK_SWITCHING; - else - if (GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_transrom"))->active) - xs_cfg.memoryMode = XS_MPU_TRANSPARENT_ROM; - else - if (GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_playsid"))->active) - xs_cfg.memoryMode = XS_MPU_PLAYSID_ENVIRONMENT; - - /* Clockspeed settings */ - if (GTK_TOGGLE_BUTTON(LUW("cfg_clock_ntsc"))->active) - xs_cfg.clockSpeed = XS_CLOCK_NTSC; - else - xs_cfg.clockSpeed = XS_CLOCK_PAL; + case CTYPE_FLOAT: + *((gfloat *) xs_widtable[i].valData) = tmpValue; + break; + } + break; + + case WTYPE_BUTTON: + /* Check if toggle-button is active */ + *((gboolean *) xs_widtable[i].valData) = + (GTK_TOGGLE_BUTTON(LUW(xs_widtable[i].widName))->active); + break; - xs_cfg.forceSpeed = GTK_TOGGLE_BUTTON(LUW("cfg_clock_force"))->active; - - - /* Songlength-detection settings */ - xs_cfg.playMaxTimeEnable = GTK_TOGGLE_BUTTON(LUW("cfg_sld_usemaxtime"))->active; - xs_cfg.playMaxTime = GTK_ADJUSTMENT(LUW("cfg_sld_maxtime_adj"))->value; - - xs_cfg.songlenDBEnable = (GTK_TOGGLE_BUTTON(LUW("cfg_sld"))->active); - xs_strcalloc(&xs_cfg.songlenDBPath, gtk_entry_get_text(GTK_ENTRY(LUW("cfg_sld_dbpath")))); - - - /* STIL and miscellaneous settings */ - xs_cfg.stilDBEnable = GTK_TOGGLE_BUTTON(LUW("cfg_stil_use"))->active; - xs_strcalloc(&xs_cfg.stilDBPath, gtk_entry_get_text(GTK_ENTRY(LUW("cfg_stil_path")))); - - xs_cfg.detectMagic = GTK_TOGGLE_BUTTON(LUW("cfg_detectmagic"))->active; - - /* Title settings */ - xs_cfg.titleOverride = GTK_TOGGLE_BUTTON(LUW("cfg_ftitle_override"))->active; - xs_strcalloc(&xs_cfg.titleFormat, gtk_entry_get_text(GTK_ENTRY(LUW("cfg_ftitle_format")))); - + case WTYPE_TEXT: + /* Get text from text-widget */ + xs_strcalloc((gchar **) xs_widtable[i].valData, + gtk_entry_get_text(GTK_ENTRY(LUW(xs_widtable[i].widName))) + ); + break; + } + } /* Write settings */ xs_write_configuration(); @@ -362,23 +392,15 @@ /* - * Update filter setting sliders - */ -void xs_update_filters(void) -{ - gtk_adjustment_set_value(GTK_ADJUSTMENT(LUW("cfg_filt_fs_adj")), xs_cfg.filterFs); - gtk_adjustment_set_value(GTK_ADJUSTMENT(LUW("cfg_filt_fm_adj")), xs_cfg.filterFm); - gtk_adjustment_set_value(GTK_ADJUSTMENT(LUW("cfg_filt_ft_adj")), xs_cfg.filterFt); -} - - -/* * Reset filter settings to defaults */ void xs_cfg_filter_reset(void) { xs_reset_filters(); - xs_update_filters(); + + gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_emu_filt_fs"))), xs_cfg.filterFs); + gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_emu_filt_fm"))), xs_cfg.filterFm); + gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_emu_filt_ft"))), xs_cfg.filterFt); } @@ -402,8 +424,7 @@ { /* Selection was accepted! */ gtk_entry_set_text(GTK_ENTRY(LUW("cfg_sld_dbpath")), - gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_sldb_fileselector)) - ); + gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_sldb_fileselector))); /* Close file selector window */ gtk_widget_destroy(xs_sldb_fileselector); @@ -438,7 +459,7 @@ void xs_cfg_stil_fs_ok(void) { /* Selection was accepted! */ - gtk_entry_set_text(GTK_ENTRY(LUW("cfg_stil_path")), + gtk_entry_set_text(GTK_ENTRY(LUW("cfg_stil_dbpath")), gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_stil_fileselector))); /* Close file selector window */ @@ -460,6 +481,9 @@ */ void xs_configure(void) { + gint i; + gfloat tmpValue; + /* Check if the window already exists */ if (xs_configwin != NULL) { @@ -494,96 +518,70 @@ gtk_widget_set_sensitive(LUW("cfg_ftitle_override"), FALSE); xs_cfg.titleOverride = TRUE; #endif - - /* Sound resolution settings */ - switch (xs_cfg.fmtBitsPerSample) { - case XS_RES_16BIT: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_res_16bit")), TRUE); - break; - case XS_RES_8BIT: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_res_8bit")), TRUE); - break; - } - - gtk_adjustment_set_value(GTK_ADJUSTMENT(LUW("cfg_samplerate_adj")), xs_cfg.fmtFrequency); - - /* Channel settings */ - switch (xs_cfg.fmtChannels) { - case XS_CHN_MONO: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_chn_mono")), TRUE); - break; - case XS_CHN_STEREO: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_chn_stereo")), TRUE); - break; - case XS_CHN_AUTOPAN: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_chn_autopan")), TRUE); - break; - } - /* Memorymode settings */ - switch (xs_cfg.memoryMode) { - case XS_MPU_REAL: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_real")), TRUE); + /* Set current data to widgets */ + for (i = 0; i < xs_widtable_max; i++) + { + switch (xs_widtable[i].widType) { + case WTYPE_BGROUP: + /* Check if current value matches the given one */ + gtk_toggle_button_set_active( + GTK_TOGGLE_BUTTON(LUW(xs_widtable[i].widName)), + (*((gint *) xs_widtable[i].valData) == xs_widtable[i].valSet) + ); break; + + + case WTYPE_SPIN: + case WTYPE_SCALE: + /* Get the value */ + switch (xs_widtable[i].valType) { + case CTYPE_INT: + tmpValue = (gfloat) *((gint *) xs_widtable[i].valData); + break; - case XS_MPU_BANK_SWITCHING: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_banksw")), TRUE); + case CTYPE_FLOAT: + tmpValue = *((gfloat *) xs_widtable[i].valData); + break; + } + + /* Set the value */ + switch (xs_widtable[i].widType) { + case WTYPE_SPIN: + gtk_adjustment_set_value( + gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(LUW(xs_widtable[i].widName))), + tmpValue); + break; + + case WTYPE_SCALE: + gtk_adjustment_set_value( + gtk_range_get_adjustment(GTK_RANGE(LUW(xs_widtable[i].widName))), + tmpValue); + break; + } break; - - case XS_MPU_TRANSPARENT_ROM: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_transrom")), TRUE); + + case WTYPE_BUTTON: + /* Set toggle-button */ + gtk_toggle_button_set_active( + GTK_TOGGLE_BUTTON(LUW(xs_widtable[i].widName)), + *((gboolean *) xs_widtable[i].valData) + ); break; - case XS_MPU_PLAYSID_ENVIRONMENT: - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_emu_mem_playsid")), TRUE); + case WTYPE_TEXT: + /* Set text to text-widget */ + if (*(gchar **) xs_widtable[i].valData != NULL) + { + gtk_entry_set_text( + GTK_ENTRY(LUW(xs_widtable[i].widName)), + *(gchar **) xs_widtable[i].valData); + } break; - } - - - /* Filter and waveform settings */ - if (xs_cfg.mos8580) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_emu_mos8580")), TRUE); - else - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_emu_mos6581")), TRUE); - - if (xs_cfg.emulateFilters) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_emu_filters")), TRUE); - - xs_update_filters(); - - - /* Song-length database */ - if (xs_cfg.playMaxTimeEnable) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_sld_usemaxtime")), TRUE); - - gtk_adjustment_set_value(GTK_ADJUSTMENT(LUW("cfg_sld_maxtime_adj")), xs_cfg.playMaxTime); - - if (xs_cfg.songlenDBEnable) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_sld")), TRUE); - - if (xs_cfg.songlenDBPath != NULL) - gtk_entry_set_text(GTK_ENTRY(LUW("cfg_sld_dbpath")), xs_cfg.songlenDBPath); - - - /* STIL and miscellaneous settings */ - if (xs_cfg.stilDBEnable) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_stil_use")), TRUE); - - if (xs_cfg.stilDBPath != NULL) - gtk_entry_set_text(GTK_ENTRY(LUW("cfg_stil_path")), xs_cfg.stilDBPath); - - if (xs_cfg.detectMagic) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_detectmagic")), TRUE); - - - /* Title-settings */ - if (xs_cfg.titleOverride) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(LUW("cfg_ftitle_override")), TRUE); - - if (xs_cfg.titleFormat != NULL) - gtk_entry_set_text(GTK_ENTRY(LUW("cfg_ftitle_format")), xs_cfg.titleFormat); - + } + } + gtk_widget_show(xs_configwin); }