示例#1
0
void
set_config_var_int (char *section, char *name, int value)
{
  char temp_string[10];
  snprintf (temp_string, 10, "%d", value);
  set_config_var_str (section, name, temp_string);
}
示例#2
0
文件: iniconfig.c 项目: mckayemu/hugo
//! makes the configuration changes permanent
void
save_config (void)
{

    char config_name[PATH_MAX];
    unsigned char input_config_number, input_config_button, input_config_player;

    // Reads all variables in the ini file
    init_config ();

    set_config_var_str ("main", "rom_dir", initial_path);
    set_config_var_int ("main", "config", current_config);
    set_config_var_int ("main", "language", language);
    set_config_var_int ("main", "smode", smode);
    set_config_var_int ("main", "eagle", use_eagle);
    set_config_var_int ("main", "scanline", use_scanline);
    set_config_var_int ("main", "snd_freq", option.want_snd_freq);
    set_config_var_int ("main", "buffer_size", sbuf_size);
    set_config_var_int ("main", "joy_type", gamepad_driver);
    set_config_var_int ("main", "sound_driver", sound_driver);
    set_config_var_int ("main", "start_fullscreen", option.want_fullscreen);
    set_config_var_int ("main", "use_fullscreen_aspect",
                        option.want_fullscreen_aspect);
    set_config_var_int ("main", "use_overlay", option.want_hardware_scaling);
    set_config_var_int ("main", "minimum_bios_hooking", minimum_bios_hooking);
    set_config_var_str ("main", "cdsystem_path", cdsystem_path);
    set_config_var_str ("main", "cd_path", ISO_filename);
    set_config_var_int ("main", "stereo_sound", option.want_stereo);
    set_config_var_int ("main", "fullscreen_width", option.fullscreen_width);
    set_config_var_int ("main", "fullscreen_height", option.fullscreen_height);
    set_config_var_int ("main", "window_size", option.window_size);
    set_config_var_int ("main", "arcade_card",
                        option.want_arcade_card_emulation);
    set_config_var_int ("main", "supergraphx",
                        option.want_supergraphx_emulation);
    set_config_var_int ("main", "tv_size",
                        option.want_television_size_emulation);
    set_config_var_int ("main", "hardware_format",
                        option.wanted_hardware_format);

    // For each input configuration ...
    for (input_config_number = 0; input_config_number < 16;
            input_config_number++)
    {
        char section_name[] = "CONFIG0";

        if (input_config_number < 10)
            section_name[6] = '0' + input_config_number;
        else
            section_name[6] = 'a' + input_config_number - 10;

        // For each player configuration ...
        for (input_config_player = 0; input_config_player < 5;
                input_config_player++)
        {
            char input_name[8];
            char input_type_name[10];

            // If there's a joypad, dump it
            if (config[input_config_number].individual_config[input_config_player].joydev)
            {
                snprintf (input_name, 8, "joydev%1d", input_config_player);
                snprintf (input_type_name, 10, "%d",
                          config[input_config_number].individual_config[input_config_player].joydev);
                set_config_var_str (section_name, input_name, input_type_name);
            }

            // For each button configuration ...
            for (input_config_button = 0; input_config_button < J_MAX;
                    input_config_button++)
            {
                char temp_joy_str[15];

                // Skip empty entries in joypad mapping
                if (config[input_config_number].individual_config[input_config_player].
                        joy_mapping[input_config_button] == default_joy_mapping[input_config_button])
                    continue;

                if ((0 == config[input_config_number].individual_config[input_config_player].joydev)
                        && (input_config_button >= J_PAD_START))
                {
                    // If it is a joystick button/axis and it is disabled, we skip it
                    continue;
                }

                snprintf (temp_joy_str, 15, "%s%1d",
                          joymap_reverse[input_config_button], input_config_player);

                set_config_var_int (section_name, temp_joy_str,
                                    config[input_config_number].individual_config[input_config_player].
                                    joy_mapping[input_config_button]);
            }
        }
    }

    // Sorts the configuration array
    qsort (config_ar, config_ar_index, sizeof (config_var), config_var_cmp);

    // Dump the configuration into a file
    sprintf (config_name, "%shugo.ini", short_exe_name);
    dump_config (config_name);

    dispose_config ();

}