static UI_CALLBACK(ui_netplay_set_port) { static char input_string[32]; char *msg_string; ui_button_t button; int i; int current_port; resources_get_int("NetworkServerPort", ¤t_port); if (!*input_string) { sprintf(input_string, "%d", current_port); } vsync_suspend_speed_eval(); msg_string = lib_stralloc(_("Enter port")); button = ui_input_string(_("Netplay TCP port"), msg_string, input_string, 32); lib_free(msg_string); if (button == UI_BUTTON_OK) { i = atoi(input_string); if (i > 0 && i < 65536) { resources_set_int("NetworkServerPort", i); ui_update_menus(); } else { ui_error(_("Invalid TCP port")); } } }
static UI_CALLBACK(change_working_directory) { char *wd; int len; len = ioutil_maxpathlen(); wd = lib_malloc(len); ioutil_getcwd(wd, len); vsync_suspend_speed_eval(); #ifdef USE_GNOMEUI if (ui_change_dir(_("VICE setting"), _("Change current working directory"), wd, len) == UI_BUTTON_OK) { if (ioutil_chdir(wd) < 0) ui_error(_("Directory not found")); } #else if (ui_input_string(_("VICE setting"), _("Change current working directory"), wd, len) == UI_BUTTON_OK) { if (ioutil_chdir(wd) < 0) ui_error(_("Directory not found")); } #endif lib_free(wd); }
void uilib_select_string(const char *resname, const char *title, const char *name) { ui_button_t button; const char *value; char *new_value; int len; vsync_suspend_speed_eval(); resources_get_string(resname, &value); if (value == NULL) value = ""; len = strlen(value) * 2; if (len < 255) len = 255; new_value = lib_calloc(1, len + 1); strncpy(new_value, value, len); button = ui_input_string(title, name, new_value, len); if (button == UI_BUTTON_OK) resources_set_string(resname, new_value); lib_free(new_value); }
static UI_CALLBACK(datasette_settings) { int what = vice_ptr_to_int(UI_MENU_CB_PARAM); char *prompt, *title, *resource; char buf[50]; ui_button_t button; int current; long res; if (what) { prompt = title = _("Datasette speed tuning"); resource = "DatasetteSpeedTuning"; } else { prompt = title = _("Datasette zero gap delay"); resource = "DatasetteZeroGapDelay"; } resources_get_int(resource, ¤t); sprintf(buf, "%d", current); button = ui_input_string(title, prompt, buf, 50); switch (button) { case UI_BUTTON_OK: if (util_string_to_long(buf, NULL, 10, &res) != 0) { ui_error(_("Invalid value: %s"), buf); return; } resources_set_int(resource, (int)res); break; default: break; } }
static UI_CALLBACK(monitor_select_addr) { const char *wd = NULL; int len = 40; resources_get_string("MonitorServerAddress", &wd); vsync_suspend_speed_eval(); if (ui_input_string(_("VICE setting"), _("Select server address"), (char*)wd, len) == UI_BUTTON_OK) { resources_set_string("MonitorServerAddress", wd); } lib_free(wd); }
void config_get(char *file_path, config *conf) { /***********************************************/ /** Initialization of configuration variables **/ /***********************************************/ int i=0, j=0; conf->server_port=36000; strcpy(conf->server_address,"localhost"); for (i=0; i<HASH_TYPE_COUNT; i++) for (j=0; j<2; j++) conf->idp[i][j]=0; /************************/ /** Read existing file **/ /************************/ conf->nb_core = config_get_int(file_path, "NB_CORE"); config_get_string(file_path, "SERVER_ADDRESS", conf->server_address); conf->server_port = config_get_int(file_path, "SERVER_PORT"); conf->idp[HASH_TYPE_MD5][IDP_TYPE_CPU] = config_get_int(file_path, "IDP_MD5_CPU"); conf->idp[HASH_TYPE_MD5][IDP_TYPE_GPU] = config_get_int(file_path, "IDP_MD5_GPU"); /************************/ /** Confirm parameters **/ /************************/ printf("\nCore(s) available : %d\n", get_core_count()); conf->nb_core = ui_input_int("Number of core to use", conf->nb_core, 1, get_core_count()); ui_input_string("Server address", conf->server_address, conf->server_address); conf->server_port = ui_input_int("Server port", conf->server_port, 1, 65535); /*******************************/ /** Write preferences in file **/ /*******************************/ remove(file_path); config_set_int(file_path,"NB_CORE", conf->nb_core); config_set_string(file_path, "SERVER_ADDRESS", conf->server_address); config_set_int(file_path,"SERVER_PORT", conf->server_port); config_set_int(file_path, "IDP_MD5_CPU", conf->idp[HASH_TYPE_MD5][IDP_TYPE_CPU]); config_set_int(file_path, "IDP_MD5_GPU", conf->idp[HASH_TYPE_MD5][IDP_TYPE_GPU]); }
static UI_CALLBACK(set_custom_maximum_speed) { static char input_string[32]; char *msg_string; ui_button_t button; int i; int current_speed; resources_get_int("Speed", ¤t_speed); if (!*input_string) { sprintf(input_string, "%d", current_speed); } if (CHECK_MENUS) { switch (current_speed) { case 200: case 100: case 50: case 20: case 10: case 0: ui_menu_set_tick(w, 0); break; default: ui_menu_set_tick(w, 1); } } else { vsync_suspend_speed_eval(); msg_string = lib_stralloc(_("Enter speed")); button = ui_input_string(_("Maximum speed"), msg_string, input_string, 32); lib_free(msg_string); if (button == UI_BUTTON_OK) { int current_refresh_rate; resources_get_int("RefreshRate", ¤t_refresh_rate); i = atoi(input_string); if (!(current_refresh_rate <= 0 && i <= 0) && i >= 0 && current_speed != i) { resources_set_int("Speed", i); ui_update_menus(); } else { ui_error(_("Invalid speed value")); } } } }
static UI_CALLBACK(set_heads) { static char input_string[32]; int num = vice_ptr_to_int(UI_MENU_CB_PARAM); if (CHECK_MENUS) { int autosize; resources_get_int_sprintf("IDE64AutodetectSize%i", &autosize, num); if (autosize) { ui_menu_set_sensitive(w, 0); } else { ui_menu_set_sensitive(w, 1); } } else { char *msg_string; ui_button_t button; int i; int heads; vsync_suspend_speed_eval(); resources_get_int_sprintf("IDE64Heads%i", &heads, num); sprintf(input_string, "%d", heads); msg_string = lib_stralloc(_("Enter number of heads")); button = ui_input_string(_("Heads"), msg_string, input_string, 32); lib_free(msg_string); if (button == UI_BUTTON_OK) { i = atoi(input_string); if (heads > 0 && heads <= 16 && heads != i) { resources_set_int_sprintf("IDE64Heads%i", i, num); ui_update_menus(); } } } }
static UI_CALLBACK(set_cylinders) { static char input_string[32]; int num = (int)UI_MENU_CB_PARAM; if (CHECK_MENUS) { int autosize; resources_get_int_sprintf("IDE64AutodetectSize%i", &autosize, num); if (autosize) { ui_menu_set_sensitive(w, 0); } else { ui_menu_set_sensitive(w, 1); } } else { char *msg_string; ui_button_t button; int i; int cylinders; vsync_suspend_speed_eval(); resources_get_int_sprintf("IDE64Cylinders%i", &cylinders, num); sprintf(input_string, "%d", cylinders); msg_string = lib_stralloc(_("Enter number of cylinders")); button = ui_input_string(_("Cylinders"), msg_string, input_string, 32); lib_free(msg_string); if (button == UI_BUTTON_OK) { i = atoi(input_string); if (cylinders > 0 && cylinders <= 1024 && cylinders != i) { resources_set_int_sprintf("IDE64Cylinders%i", i, num); ui_update_menus(); } } } }
static UI_CALLBACK(events_select_dir) { char *wd; unsigned int i, is_dir; int len; len = ioutil_maxpathlen(); wd = lib_malloc(len); ioutil_getcwd(wd, len); vsync_suspend_speed_eval(); if (ui_input_string(_("VICE setting"), _("Select history directory"), wd, len) == UI_BUTTON_OK) { ioutil_stat(wd, &i, &is_dir); if (!is_dir) ui_error(_("Directory not found")); else resources_set_string("EventSnapshotDir", wd); } lib_free(wd); }
static UI_CALLBACK(set_custom_refresh_rate) { static char input_string[32]; char *msg_string; ui_button_t button; int i; int current_refresh_rate; resources_get_int("RefreshRate", ¤t_refresh_rate); if (!*input_string) { sprintf(input_string, "%d", current_refresh_rate); } if (CHECK_MENUS) { if (current_refresh_rate < 0 || current_refresh_rate > 10) { ui_menu_set_tick(w, 1); } else { ui_menu_set_tick(w, 0); } } else { int current_speed; vsync_suspend_speed_eval(); msg_string = lib_stralloc(_("Enter refresh rate")); button = ui_input_string(_("Refresh rate"), msg_string, input_string, 32); lib_free(msg_string); if (button == UI_BUTTON_OK) { i = atoi(input_string); resources_get_int("Speed", ¤t_speed); if (!(current_speed <= 0 && i <= 0) && i >= 0 && current_refresh_rate != i) { resources_set_int("RefreshRate", i); ui_update_menus(); } } } }
static UI_CALLBACK(openGL_set_desktoprefresh) { char *enter_refresh_rate = util_concat(_("Enter refresh rate"), " (Hz): ", NULL); char *refresh_rate = util_concat(_("Refresh rate"), ": ", NULL); if (!CHECK_MENUS) { float f; char *buf = lib_calloc(sizeof(char), 10); sprintf(buf, "%.0f", openGL_get_canvas_refreshrate()); ui_input_string(refresh_rate, enter_refresh_rate, buf, 10); f = (float) strtol(buf, NULL, 10); openGL_set_canvas_refreshrate(f); lib_free(buf); lib_free(enter_refresh_rate); lib_free(refresh_rate); } else { if (openGL_available(0) && openGL_sync_enabled()) { ui_menu_set_sensitive(w, 1); } else { ui_menu_set_sensitive(w, 0); } } }
static UI_CALLBACK(PAL_control_cb) { char buf[50]; ui_button_t button; long res; int current; int what = vice_ptr_to_int(UI_MENU_CB_PARAM); char*resource; switch (what) { case 0: resource = "PALScanLineShade"; resources_get_int(resource, ¤t); current /= 10; sprintf(buf, "%d", current); button = ui_input_string(_("Scanline shade"), _("Scanline Shade in percent"), buf, 50); break; case 2: resource = "ColorTint"; resources_get_int(resource, ¤t); current /= 10; sprintf(buf, "%d", current); button = ui_input_string(_("Tint"), _("Tint in percent"), buf, 50); break; case 3: resource = "PALOddLinePhase"; resources_get_int(resource, ¤t); current /= 10; sprintf(buf, "%d", current); button = ui_input_string(_("Odd lines phase"), _("Phase in percent"), buf, 50); break; case 4: resource = "PALOddLineOffset"; resources_get_int(resource, ¤t); current /= 10; sprintf(buf, "%d", current); button = ui_input_string(_("Odd lines offset"), _("Offset in percent"), buf, 50); break; case 1: default: resource = "PALBlur"; resources_get_int(resource, ¤t); current /= 10; sprintf(buf, "%d", current); button = ui_input_string(_("Blur"), _("Blur in percent"), buf, 50); break; } switch (button) { case UI_BUTTON_OK: if (util_string_to_long(buf, NULL, 10, &res) != 0) { ui_error(_("Invalid value: %s"), buf); return; } break; default: break; } if ((current != res) && (res <= 100) && (res >= 0)) { resources_set_int(resource, (int)(res * 10)); } }