static void change_ui_settings(void) { status.vis_style = widgets_config[4].d.menutoggle.state; status.time_display = widgets_config[7].d.menutoggle.state; if (widgets_config[5].d.toggle.state) { status.flags |= CLASSIC_MODE; } else { status.flags &= ~CLASSIC_MODE; } kbd_sharp_flat_toggle(widgets_config[6].d.menutoggle.state); GM_Reset(0); if (widgets_config[8].d.toggle.state) { status.flags |= MIDI_LIKE_TRACKER; } else { status.flags &= ~MIDI_LIKE_TRACKER; } status.flags |= NEED_UPDATE; status_text_flash(SAVED_AT_EXIT); }
void cfg_load(void) { char *tmp; const char *ptr; int i; cfg_file_t cfg; tmp = dmoz_path_concat(cfg_dir_dotschism, "config"); cfg_init(&cfg, tmp); free(tmp); /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ cfg_get_string(&cfg, "Video", "driver", cfg_video_driver, 64, ""); cfg_video_fullscreen = !!cfg_get_number(&cfg, "Video", "fullscreen", 0); cfg_video_mousecursor = cfg_get_number(&cfg, "Video", "mouse_cursor", MOUSE_EMULATED); cfg_video_mousecursor = CLAMP(cfg_video_mousecursor, 0, MOUSE_MAX_STATE); ptr = cfg_get_string(&cfg, "Video", "aspect", NULL, 0, NULL); if (ptr && *ptr) put_env_var("SCHISM_VIDEO_ASPECT", ptr); tmp = get_home_directory(); cfg_get_string(&cfg, "Directories", "modules", cfg_dir_modules, PATH_MAX, tmp); cfg_get_string(&cfg, "Directories", "samples", cfg_dir_samples, PATH_MAX, tmp); cfg_get_string(&cfg, "Directories", "instruments", cfg_dir_instruments, PATH_MAX, tmp); free(tmp); ptr = cfg_get_string(&cfg, "Directories", "module_pattern", NULL, 0, NULL); if (ptr) { strncpy(cfg_module_pattern, ptr, PATH_MAX); cfg_module_pattern[PATH_MAX] = 0; } ptr = cfg_get_string(&cfg, "Directories", "export_pattern", NULL, 0, NULL); if (ptr) { strncpy(cfg_export_pattern, ptr, PATH_MAX); cfg_export_pattern[PATH_MAX] = 0; } ptr = cfg_get_string(&cfg, "General", "numlock_setting", NULL, 0, NULL); if (!ptr) status.fix_numlock_setting = NUMLOCK_GUESS; else if (strcasecmp(ptr, "on") == 0) status.fix_numlock_setting = NUMLOCK_ALWAYS_ON; else if (strcasecmp(ptr, "off") == 0) status.fix_numlock_setting = NUMLOCK_ALWAYS_OFF; else status.fix_numlock_setting = NUMLOCK_HONOR; set_key_repeat(cfg_get_number(&cfg, "General", "key_repeat_delay", key_repeat_delay()), cfg_get_number(&cfg, "General", "key_repeat_rate", key_repeat_rate())); /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ cfg_load_info(&cfg); cfg_load_patedit(&cfg); cfg_load_audio(&cfg); cfg_load_midi(&cfg); cfg_load_disko(&cfg); cfg_load_dmoz(&cfg); /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ if (cfg_get_number(&cfg, "General", "classic_mode", 0)) status.flags |= CLASSIC_MODE; else status.flags &= ~CLASSIC_MODE; if (cfg_get_number(&cfg, "General", "make_backups", 1)) status.flags |= MAKE_BACKUPS; else status.flags &= ~MAKE_BACKUPS; if (cfg_get_number(&cfg, "General", "numbered_backups", 0)) status.flags |= NUMBERED_BACKUPS; else status.flags &= ~NUMBERED_BACKUPS; i = cfg_get_number(&cfg, "General", "time_display", TIME_PLAY_ELAPSED); /* default to play/elapsed for invalid values */ if (i < 0 || i >= TIME_PLAYBACK) i = TIME_PLAY_ELAPSED; status.time_display = i; i = cfg_get_number(&cfg, "General", "vis_style", VIS_OSCILLOSCOPE); /* default to oscilloscope for invalid values */ if (i < 0 || i >= VIS_SENTINEL) i = VIS_OSCILLOSCOPE; status.vis_style = i; kbd_sharp_flat_toggle(cfg_get_number(&cfg, "General", "accidentals_as_flats", 0) == 1); #ifdef MACOSX # define DEFAULT_META 1 #else # define DEFAULT_META 0 #endif if (cfg_get_number(&cfg, "General", "meta_is_ctrl", DEFAULT_META)) status.flags |= META_IS_CTRL; else status.flags &= ~META_IS_CTRL; if (cfg_get_number(&cfg, "General", "altgr_is_alt", 1)) status.flags |= ALTGR_IS_ALT; else status.flags &= ~ALTGR_IS_ALT; if (cfg_get_number(&cfg, "Video", "lazy_redraw", 0)) status.flags |= LAZY_REDRAW; else status.flags &= ~LAZY_REDRAW; if (cfg_get_number(&cfg, "General", "midi_like_tracker", 0)) status.flags |= MIDI_LIKE_TRACKER; else status.flags &= ~MIDI_LIKE_TRACKER; cfg_get_string(&cfg, "General", "font", cfg_font, NAME_MAX, "font.cfg"); cfg_load_palette(&cfg); /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ cfg_free(&cfg); }