bool save_opentyrian_config( void ) { cJSON *root = load_json("opentyrian.conf"); if (root == NULL) root = cJSON_CreateObject(); cJSON *section; section = cJSON_CreateOrGetObjectItem(root, "video"); cJSON_ForceType(section, cJSON_Object); { cJSON *setting; setting = cJSON_CreateOrGetObjectItem(section, "fullscreen"); cJSON_SetBoolean(setting, fullscreen_enabled); setting = cJSON_CreateOrGetObjectItem(section, "scaler"); cJSON_SetString(setting, scalers[scaler].name); } save_json(root, "opentyrian.conf"); cJSON_Delete(root); return true; }
bool save_opentyrian_config( void ) { #ifdef __BLACKBERRY__ #else #ifdef ENABLE_CONFIGURATION cJSON *root = load_json("opentyrian.conf"); if (root == NULL) root = cJSON_CreateObject(); cJSON *section; section = cJSON_CreateOrGetObjectItem(root, "video"); cJSON_ForceType(section, cJSON_Object); { cJSON *setting; setting = cJSON_CreateOrGetObjectItem(section, "fullscreen"); cJSON_SetBoolean(setting, fullscreen_enabled); setting = cJSON_CreateOrGetObjectItem(section, "scaler"); cJSON_SetString(setting, scalers[scaler].name); } save_json(root, "opentyrian.conf"); cJSON_Delete(root); #endif /*ENABLE_CONFIGURATION*/ #endif return true; }
bool save_joystick_assignments( int j ) { cJSON *root = load_json("joystick.conf"); if (root == NULL) root = cJSON_CreateObject(); cJSON *config = cJSON_CreateOrGetObjectItem(root, SDL_JoystickName(j)); cJSON_ForceType(config, cJSON_Object); cJSON *setting; setting = cJSON_CreateOrGetObjectItem(config, "analog"); cJSON_SetBoolean(setting, joystick[j].analog); setting = cJSON_CreateOrGetObjectItem(config, "sensitivity"); cJSON_SetNumber(setting, joystick[j].sensitivity); setting = cJSON_CreateOrGetObjectItem(config, "threshold"); cJSON_SetNumber(setting, joystick[j].threshold); setting = cJSON_CreateOrGetObjectItem(config, "assignments"); cJSON_ForceType(setting, cJSON_Array); cJSON_ClearArray(setting); for (uint i = 0; i < COUNTOF(joystick->assignment); ++i) { cJSON *assignments; cJSON_AddItemToArray(setting, assignments = cJSON_CreateArray()); for (uint k = 0; k < COUNTOF(*joystick->assignment); ++k) { if (joystick[j].assignment[i][k].type == NONE) continue; cJSON_AddItemToArray(assignments, cJSON_CreateString(assignment_to_code(&joystick[j].assignment[i][k]))); } } save_json(root, "joystick.conf"); cJSON_Delete(root); return true; }
static void conf_handler(struct mg_connection *c, int ev, void *p) { struct http_message *hm = (struct http_message *) p; if (ev != MG_EV_HTTP_REQUEST) return; LOG(LL_DEBUG, ("[%.*s] requested", (int) hm->uri.len, hm->uri.p)); char *json = NULL; int status = -1; int rc = 200; if (mg_vcmp(&hm->uri, "/conf/defaults") == 0) { struct sys_config cfg; memset(&cfg, 0, sizeof(cfg)); if (load_config_defaults(&cfg)) { json = emit_sys_config(&cfg); } } else if (mg_vcmp(&hm->uri, "/conf/current") == 0) { json = emit_sys_config(&s_cfg); } else if (mg_vcmp(&hm->uri, "/conf/save") == 0) { status = (save_json(&hm->body, CONF_FILE) != 1); if (status == 0) c->flags |= MG_F_RELOAD_CONFIG; } else if (mg_vcmp(&hm->uri, "/conf/reset") == 0) { struct stat st; if (stat(CONF_FILE, &st) == 0) { status = remove(CONF_FILE); } else { status = 0; } if (status == 0) c->flags |= MG_F_RELOAD_CONFIG; } if (json == NULL) { if (asprintf(&json, "{\"status\": %d}\n", status) < 0) { json = "{\"status\": -1}"; } else { rc = (status == 0 ? 200 : 500); } } { int len = strlen(json); mg_send_head(c, rc, len, JSON_HEADERS); mg_send(c, json, len); free(json); } c->flags |= MG_F_SEND_AND_CLOSE; }