コード例 #1
0
ファイル: desmume_config.cpp プロジェクト: H8sn0w/desmumewii
GKeyFile *desmume_config_read_file()
{
    gchar *config_file;
    GKeyFile *keyfile;
    GError *error = NULL;
    gboolean ret;

    config_file = g_build_filename(g_get_home_dir(), desmume_config_file, NULL);
    keyfile = g_key_file_new();
    ret = g_key_file_load_from_file(keyfile, config_file, G_KEY_FILE_NONE, &error);
    if (!ret) {
        g_error_free(error);
    }

    g_free(config_file);

    load_default_config(gtk_kb_cfg);
    desmume_config_read_keys(keyfile);
    desmume_config_read_joykeys(keyfile);

    return keyfile;
}
コード例 #2
0
GKeyFile *desmume_config_read_file(const u16 *kb_cfg)
{
    gchar *config_file, *config_dir, *old_config_file;
    GKeyFile *keyfile;
    GError *error = NULL;
    gboolean ret;

    old_config_file = g_build_filename(g_get_home_dir(), desmume_old_config_file, NULL);
    config_file = g_build_filename(g_get_user_config_dir(), desmume_config_dir, desmume_config_file, NULL);

    config_dir = g_build_filename(g_get_user_config_dir(), desmume_config_dir, NULL);
    g_mkdir_with_parents(config_dir, 0755);

    if (!g_file_test(config_file, G_FILE_TEST_IS_REGULAR) && g_file_test(old_config_file, G_FILE_TEST_IS_REGULAR)) {
        ret = g_rename(old_config_file, config_file);
        if (ret) {
            g_printerr("Failed to move old config file %s to new location %s \n", old_config_file, config_file);
        }
    }

    keyfile = g_key_file_new();
    ret = g_key_file_load_from_file(keyfile, config_file, G_KEY_FILE_NONE, &error);
    if (!ret) {
        g_error_free(error);
    }

    g_free(config_file);
    g_free(config_dir);
    g_free(old_config_file);

    load_default_config(kb_cfg);
    desmume_config_read_keys(keyfile);
    desmume_config_read_joykeys(keyfile);

    return keyfile;
}