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 void netplay_update_resources(void) { const gchar *server_name; const gchar *server_bind_address; char p[256]; long port; strncpy(p, gtk_entry_get_text(GTK_ENTRY(np_port)), 256); server_name = gtk_entry_get_text(GTK_ENTRY(np_server)); server_bind_address = gtk_entry_get_text(GTK_ENTRY(np_server_bind)); util_string_to_long(p, NULL, 10, &port); if (port < 1 || port > 0xFFFF) { ui_error(_("Invalid port number")); return; } resources_set_int("NetworkServerPort", (int)port); resources_set_string("NetworkServerName", server_name); resources_set_string("NetworkServerBindAddress", server_bind_address); }
static int palette_load_core(FILE *f, const char *file_name, palette_t *tmp_palette, palette_t *palette_return) { char buf[1024]; unsigned int line_num = 0; unsigned int entry_num = 0; while (1) { int i; BYTE values[4]; const char *p1; int line_len = util_get_line(buf, 1024, f); if (line_len < 0) { break; } line_num++; if (*buf == '#') { continue; } p1 = next_nonspace(buf); if (*p1 == '\0') { /* empty line */ continue; } for (i = 0; i < 4; i++) { long result; const char *p2; if (util_string_to_long(p1, &p2, 16, &result) < 0) { log_error(palette_log, "%s, %d: number expected.", file_name, line_num); return -1; } if (result < 0 || (i == 3 && result > 0xf) || result > 0xff || result < 0) { log_error(palette_log, "%s, %d: invalid value %lx.", file_name, line_num, result); return -1; } values[i] = (BYTE)result; p1 = p2; } p1 = next_nonspace(p1); if (*p1 != '\0') { log_error(palette_log, "%s, %d: garbage at end of line.", file_name, line_num); return -1; } if (entry_num >= palette_return->num_entries) { log_error(palette_log, "%s: too many entries, %d expected.", file_name, palette_return->num_entries); return -1; } if (palette_set_entry(tmp_palette, entry_num, values[0], values[1], values[2], values[3]) < 0) { log_error(palette_log, "Failed to set palette entry."); return -1; } entry_num++; } if (line_num == 0) { log_error(palette_log, "Could not read from palette file."); return -1; } if (entry_num < palette_return->num_entries) { log_error(palette_log, "%s: too few entries, %d found, %d expected.", file_name, entry_num, palette_return->num_entries); return -1; } if (palette_copy(palette_return, tmp_palette) < 0) { log_error(palette_log, "Failed to copy palette."); return -1; } return 0; }
int fliplist_load_list(unsigned int unit, const char *filename, int autoattach) { FILE *fp; char buffer[buffer_size]; int all_units = 0, i; int listok = 0; if (filename == NULL || *filename == 0 || (fp = fopen(filename, MODE_READ)) == NULL) { return -1; } buffer[0] = '\0'; if (fgets(buffer, buffer_size, fp) == NULL) { fclose(fp); return -1; } if (strncmp(buffer, flip_file_header, strlen(flip_file_header)) != 0) { log_message(LOG_DEFAULT, "File %s is not a fliplist file", filename); fclose(fp); return -1; } if (unit == FLIPLIST_ALL_UNITS) { all_units = 1; for (i = 0; i < NUM_DRIVES; i++) { fliplist_clear_list(i + 8); } } else { fliplist_clear_list(unit); } while (!feof(fp)) { char *b; buffer[0] = '\0'; if (fgets(buffer, buffer_size, fp) == NULL) { break; } if (strncmp("UNIT ", buffer, 5) == 0) { if (all_units != 0) { long unit_long; util_string_to_long(buffer + 5, NULL, 10, &unit_long); unit = (unsigned int)unit_long; } continue; } /* remove trailing whitespace (linefeeds etc) */ b = buffer + strlen(buffer); while ((b > buffer) && (isspace((unsigned int)(b[-1])))) { b--; } if (b > buffer) { fliplist_t tmp; *b = '\0'; if (unit == FLIPLIST_ALL_UNITS) { log_message(LOG_DEFAULT, "Fliplist has inconsistent view for unit, assuming 8.\n"); unit = 8; } tmp = lib_malloc(sizeof(struct fliplist_s)); tmp->image = lib_stralloc(buffer); tmp->unit = unit; if (fliplist[unit - 8] == NULL) { fliplist[unit - 8] = tmp; tmp->prev = tmp; tmp->next = tmp; } else { tmp->next = fliplist[unit - 8]; tmp->prev = fliplist[unit - 8]->prev; tmp->next->prev = tmp; tmp->prev->next = tmp; fliplist[unit - 8] = tmp; } listok = 1; } } fclose(fp); if (listok) { current_drive = unit; if (all_units) { for (i = 0; i < NUM_DRIVES; i++) { show_fliplist(i + 8); } } else { show_fliplist(unit); } if (autoattach) { fliplist_attach_head(unit, 1); } return 0; } return -1; }
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)); } }