static BOOL inireadcb(void *arg, const char *para, const char *key, const char *data) { const INITBL *p; if (arg == NULL) { return(FAILURE); } if (milstr_cmp(para, ((INIARG)arg)->title)) { return(SUCCESS); } p = ((INIARG)arg)->tbl; while(p < ((INIARG)arg)->tblterm) { if (!milstr_cmp(key, p->item)) { switch(p->itemtype) { case INITYPE_STR: milstr_ncpy((char *)p->value, data, p->size); break; case INITYPE_BOOL: *((BYTE *)p->value) = (!milstr_cmp(data, str_true))?1:0; break; case INITYPE_BYTEARG: inirdarg8((BYTE *)p->value, p->size, data); break; case INITYPE_SINT8: case INITYPE_UINT8: *((BYTE *)p->value) = (BYTE)milstr_solveINT(data); break; case INITYPE_SINT16: case INITYPE_UINT16: *((UINT16 *)p->value) = (UINT16)milstr_solveINT(data); break; case INITYPE_SINT32: case INITYPE_UINT32: *((UINT32 *)p->value) = (UINT32)milstr_solveINT(data); break; case INITYPE_HEX8: *((BYTE *)p->value) = (BYTE)milstr_solveHEX(data); break; case INITYPE_HEX16: *((UINT16 *)p->value) = (UINT16)milstr_solveHEX(data); break; case INITYPE_HEX32: *((UINT32 *)p->value) = (UINT32)milstr_solveHEX(data); break; } } p++; } return(SUCCESS); }
/** * 16ビット配列を読み込む * @param[in] lpString 文字列 * @param[out] ini 設定テーブル */ static void inirdargs16(LPCTSTR lpString, const PFTBL* ini) { SINT16* lpDst = static_cast<SINT16*>(ini->value); const int nCount = ini->arg; for (int i = 0; i < nCount; i++) { while (*lpString == ' ') { lpString++; } if (*lpString == '\0') { break; } lpDst[i] = static_cast<SINT16>(milstr_solveINT(lpString)); while (*lpString != '\0') { const TCHAR c = *lpString++; if (c == ',') { break; } } } }
static void inirdargs16(const OEMCHAR *src, const PFTBL *ini) { SINT16 *dst; int dsize; int i; OEMCHAR c; dst = (SINT16 *)ini->value; dsize = ini->arg; for (i=0; i<dsize; i++) { while(*src == ' ') { src++; } if (*src == '\0') { break; } dst[i] = (SINT16)milstr_solveINT(src); while(*src != '\0') { c = *src++; if (c == ',') { break; } } } }
static void setclock(HWND hWnd, UINT multiple) { UINT32 clock; TCHAR work[32]; GetDlgItemText(hWnd, IDC_BASECLOCK, work, NELEMENTS(work)); if (work[0] == '1') { clock = PCBASECLOCK20 / 100; } else { clock = PCBASECLOCK25 / 100; } if (multiple == 0) { GetDlgItemText(hWnd, IDC_MULTIPLE, work, NELEMENTS(work)); multiple = (UINT)milstr_solveINT(work); } if (multiple < 1) { multiple = 1; } else if (multiple > 32) { multiple = 32; } clock *= multiple; wsprintf(work, str_clockfmt, clock / 10000, clock % 10000); SetDlgItemText(hWnd, IDC_CLOCKMSG, work); }
static BRESULT opencue(SXSIDEV sxsi, const OEMCHAR *fname) { _CDTRK trk[99]; OEMCHAR path[MAX_PATH]; UINT idx; UINT8 curtrk; UINT curtype; TEXTFILEH tfh; OEMCHAR buf[512]; OEMCHAR *argv[8]; int argc; ZeroMemory(trk, sizeof(trk)); path[0] = '\0'; idx = 0; curtrk = 1; curtype = 0x14; tfh = textfile_open(fname, 0x800); if (tfh == NULL) { return(FAILURE); } while(textfile_read(tfh, buf, NELEMENTS(buf)) == SUCCESS) { argc = milstr_getarg(buf, argv, NELEMENTS(argv)); if ((argc >= 3) && (!milstr_cmp(argv[0], str_file))) { file_cpyname(path, fname, NELEMENTS(path)); file_cutname(path); file_catname(path, argv[1], NELEMENTS(path)); } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_track))) { curtrk = (UINT8)milstr_solveINT(argv[1]); if (!milstr_cmp(argv[2], str_mode1)) { curtype = 0x14; } else if (!milstr_cmp(argv[2], str_audio)) { curtype = 0x10; } } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_index))) { if (idx < NELEMENTS(trk)) { trk[idx].type = curtype; trk[idx].track = curtrk; trk[idx].pos = getpos(argv[2]); idx++; } } } textfile_close(tfh); return(openimg(sxsi, path, trk, idx)); }
static void clock_changed(GtkEditable *e, gpointer d) { const gchar *base = gtk_entry_get_text(GTK_ENTRY(baseclock_entry)); const gchar *multp = gtk_entry_get_text(GTK_ENTRY(clockmult_entry)); guint mult = milstr_solveINT(multp); gchar buf[80]; gint clk; if (base[0] == '1') { clk = PCBASECLOCK20 * mult; } else { clk = PCBASECLOCK25 * mult; } g_snprintf(buf, sizeof(buf), "%2d.%03dMHz", clk / 1000000U, (clk / 1000) % 1000); gtk_label_set_text(GTK_LABEL((GtkWidget*)d), buf); }
static void ok_button_clicked(GtkButton *b, gpointer d) { const gchar *bufp = gtk_entry_get_text(GTK_ENTRY(buffer_entry)); const gchar *base = gtk_entry_get_text(GTK_ENTRY(baseclock_entry)); const gchar *multp = gtk_entry_get_text(GTK_ENTRY(clockmult_entry)); #if defined(SUPPORT_RESUME) gint resume = GTK_TOGGLE_BUTTON(resume_checkbutton)->active; #endif #if defined(GCC_CPU_ARCH_IA32) gint disablemmx = GTK_TOGGLE_BUTTON(disablemmx_checkbutton)->active; #endif guint bufsize; guint mult; UINT renewal = 0; int i; if (strcmp(base, "1.9968MHz") == 0) { if (np2cfg.baseclock != PCBASECLOCK20) { np2cfg.baseclock = PCBASECLOCK20; renewal |= SYS_UPDATECFG|SYS_UPDATECLOCK; } } else { if (np2cfg.baseclock != PCBASECLOCK25) { np2cfg.baseclock = PCBASECLOCK25; renewal |= SYS_UPDATECFG|SYS_UPDATECLOCK; } } mult = milstr_solveINT(multp); switch (mult) { case 1: case 2: case 4: case 5: case 6: case 8: case 10: case 12: case 16: case 20: if (mult != np2cfg.multiple) { np2cfg.multiple = mult; renewal |= SYS_UPDATECFG|SYS_UPDATECLOCK; } break; } for (i = 0; i < NELEMENTS(architecture); i++) { if (strcmp(arch, architecture[i].arch) == 0) { milstr_ncpy(np2cfg.model, arch, sizeof(np2cfg.model)); renewal |= SYS_UPDATECFG; break; } } if (i == NELEMENTS(architecture)) { milstr_ncpy(np2cfg.model, "VX", sizeof(np2cfg.model)); renewal |= SYS_UPDATECFG; } switch (rate) { case 11025: case 22050: case 44100: if (rate != np2cfg.samplingrate) { np2cfg.samplingrate = rate; renewal |= SYS_UPDATECFG|SYS_UPDATERATE; soundrenewal = 1; } break; } bufsize = milstr_solveINT(bufp); if (bufsize < 20) bufsize = 20; else if (bufsize > 1000) bufsize = 1000; if (np2cfg.delayms != bufsize) { np2cfg.delayms = bufsize; renewal |= SYS_UPDATECFG|SYS_UPDATESBUF; soundrenewal = 1; } #if defined(GCC_CPU_ARCH_IA32) if (!(mmxflag & MMXFLAG_NOTSUPPORT)) { disablemmx = disablemmx ? MMXFLAG_DISABLE : 0; if (np2oscfg.disablemmx != disablemmx) { np2oscfg.disablemmx = disablemmx; mmxflag &= ~MMXFLAG_DISABLE; mmxflag |= disablemmx; renewal |= SYS_UPDATEOSCFG; } } #endif #if defined(SUPPORT_RESUME) if (np2oscfg.resume != resume) { np2oscfg.resume = resume; renewal |= SYS_UPDATEOSCFG; } #endif if (renewal) { sysmng_update(renewal); } gtk_widget_destroy((GtkWidget *)d); }
static gint t98_newdisk_dialog(GtkWidget *dialog, const int kind) { static const char *hddsizestr[] = { "20", "41", "65", "80", "128", }; char buf[32]; GtkWidget *dialog_table; GtkWidget *label; GtkWidget *hbox; GtkWidget *combo; GtkWidget *entry; const char *p; int hdsize; int minsize, maxsize; gint rv; int i; minsize = 5; switch (kind) { case 2: /* THD */ maxsize = 256; break; case 3: /* NHD */ maxsize = 512; break; default: return 0; } /* dialog table */ dialog_table = gtk_table_new(2, 3, FALSE); gtk_table_set_col_spacings(GTK_TABLE(dialog_table), 5); #if GTK_MAJOR_VERSION > 2 || (GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION >= 14) gtk_container_add( GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), dialog_table); #else gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox),dialog_table); #endif gtk_widget_show(dialog_table); /* "HDD Size" label */ label = gtk_label_new(str_hddsize); gtk_misc_set_alignment(GTK_MISC(label), 0.5, 0.5); gtk_table_attach_defaults(GTK_TABLE(dialog_table), label, 0, 1, 0, 1); gtk_widget_show(label); /* HDD Size */ hbox = gtk_hbox_new(FALSE, 2); gtk_container_set_border_width(GTK_CONTAINER(hbox), 0); gtk_table_attach_defaults(GTK_TABLE(dialog_table), hbox, 1, 2, 0, 1); gtk_widget_show(hbox); combo = gtk_combo_box_entry_new_text(); for (i = 0; i < NELEMENTS(hddsizestr); ++i) { gtk_combo_box_append_text(GTK_COMBO_BOX(combo), hddsizestr[i]); } gtk_widget_set_size_request(combo, 60, -1); gtk_box_pack_start(GTK_BOX(hbox), combo, FALSE, FALSE, 5); gtk_widget_show(combo); entry = gtk_bin_get_child(GTK_BIN(combo)); gtk_editable_set_editable(GTK_EDITABLE(entry), TRUE); gtk_entry_set_max_length(GTK_ENTRY(entry), 3); gtk_entry_set_text(GTK_ENTRY(entry), ""); gtk_widget_show(entry); /* "MB" label */ label = gtk_label_new("MB"); gtk_misc_set_alignment(GTK_MISC(label), 0.1, 0.5); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); gtk_widget_show(label); /* size label */ g_snprintf(buf, sizeof(buf), "(%d-%dMB)", minsize, maxsize); label = gtk_label_new(buf); gtk_misc_set_alignment(GTK_MISC(label), 0.9, 0.5); gtk_table_attach_defaults(GTK_TABLE(dialog_table), label, 1, 2, 1, 2); gtk_widget_show(label); gtk_widget_show_all(dialog); for (;;) { rv = gtk_dialog_run(GTK_DIALOG(dialog)); if (rv == GTK_RESPONSE_CANCEL) { hdsize = 0; break; } if (rv == GTK_RESPONSE_OK) { p = gtk_entry_get_text(GTK_ENTRY(entry)); if (p && strlen(p) != 0) { hdsize = milstr_solveINT(p); if (hdsize >= minsize && hdsize <= maxsize) { return hdsize; } gtk_entry_set_text(GTK_ENTRY(entry), ""); } } } return 0; }
// CUEシート読み込み BRESULT opencue(SXSIDEV sxsi, const OEMCHAR *fname) { _CDTRK trk[99]; OEMCHAR path[MAX_PATH]; UINT index; UINT8 curtrk; UINT curtype; TEXTFILEH tfh; OEMCHAR buf_mode[10]; OEMCHAR buf[512]; OEMCHAR *argv[8]; int argc; // -------- UINT16 curssize; UINT32 curpos0; UINT32 curpregap; ZeroMemory(trk, sizeof(trk)); path[0] = '\0'; index = 0; curtrk = 1; curtype = 0x14; // -------- curpos0 = 0; curpregap = 0; // -------- tfh = textfile_open(fname, 0x800); if (tfh == NULL) { goto opencue_err2; } while (textfile_read(tfh, buf, NELEMENTS(buf)) == SUCCESS) { argc = milstr_getarg(buf, argv, NELEMENTS(argv)); if ((argc >= 3) && (!milstr_cmp(argv[0], str_file))) { // FILE if (!milstr_cmp(argv[argc-1], str_binary) && path[0] == '\0') { // BINARY file_cpyname(path, fname, NELEMENTS(path)); file_cutname(path); file_catname(path, argv[1], NELEMENTS(path)); } } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_track))) { // TRACK curtrk = (UINT8)milstr_solveINT(argv[1]); milstr_ncpy(buf_mode, argv[2], NELEMENTS(str_mode1)); if (!milstr_cmp(buf_mode, str_mode1)) { // MODE1/???? curtype = 0x14; curssize = (UINT16)milstr_solveINT(argv[2] + 6); } else if (!milstr_cmp(buf_mode, str_mode2)) { // MODE2/???? curtype = 0x14; curssize = (UINT16)milstr_solveINT(argv[2] + 6); } else if (!milstr_cmp(argv[2], str_audio)) { // AUDIO curtype = 0x10; curssize = 2352; } } else if ((argc >= 2) && (!milstr_cmp(argv[0], str_pregap))) { // PREGAP curpregap = getpos(argv[1]); } else if ((argc >= 3) && (!milstr_cmp(argv[0], str_index))) { // INDEX ?? if (index < NELEMENTS(trk)) { if ((UINT8)milstr_solveINT(argv[1]) == 0) { // INDEX 00 curpos0 = getpos(argv[2]); continue; } if ((UINT8)milstr_solveINT(argv[1]) != 1) { // INDEX 01以外 continue; } trk[index].adr_ctl = curtype; trk[index].point = curtrk; trk[index].pos = getpos(argv[2]); trk[index].pos0 = (curpos0 == 0) ? trk[index].pos : curpos0; trk[index].sector_size = curssize; trk[index].pregap_sectors = curpregap + (trk[index].pos - trk[index].pos0); trk[index].img_pregap_sec = (trk[index].pos0 == 0) ? trk[index].pos : trk[index].pos0; trk[index].img_start_sec = trk[index].pos; // trk[index].pregap_sector = trk[index].start_sector - trk[index].pregap_sectors; index++; curpregap = 0; curpos0 = 0; } } } if (index == 0) { goto opencue_err1; } set_secread(sxsi, trk, index); sxsi->totals = -1; textfile_close(tfh); return(setsxsidev(sxsi, path, trk, index)); opencue_err1: textfile_close(tfh); opencue_err2: return(FAILURE); }
void dialog_scropt(void) { DialogPtr hDlg; ControlHandle chipbtn[2]; ControlHandle grcgbtn[4]; ControlHandle lcdbtn[2]; ControlHandle skipbtn; ControlHandle c16btn; UINT chip; UINT grcg; UINT color16; UINT lcd; UINT skipline; UINT val; char work[32]; Str255 workstr; int done; short item; UINT update; UINT renewal; BYTE waitval[6]; hDlg = GetNewDialog(IDD_SCREENOPT, NULL, (WindowPtr)-1); if (!hDlg) { return; } chipbtn[0] = (ControlHandle)GetDlgItem(hDlg, IDC_GDC7220); chipbtn[1] = (ControlHandle)GetDlgItem(hDlg, IDC_GDC72020); grcgbtn[0] = (ControlHandle)GetDlgItem(hDlg, IDC_GRCGNON); grcgbtn[1] = (ControlHandle)GetDlgItem(hDlg, IDC_GRCG); grcgbtn[2] = (ControlHandle)GetDlgItem(hDlg, IDC_GRCG2); grcgbtn[3] = (ControlHandle)GetDlgItem(hDlg, IDC_EGC); c16btn = (ControlHandle)GetDlgItem(hDlg, IDC_PC980124); lcdbtn[0] = (ControlHandle)GetDlgItem(hDlg, IDC_LCD); lcdbtn[1] = (ControlHandle)GetDlgItem(hDlg, IDC_LCDX); skipbtn = (ControlHandle)GetDlgItem(hDlg, IDC_SKIPLINE); chip = (np2cfg.uPD72020)?1:0; setchip(chipbtn, chip); grcg = np2cfg.grcg & 3; setgrcg(grcgbtn, grcg); color16 = (np2cfg.color16)?1:0; SetControlValue(c16btn, color16); val = np2cfg.wait[0]; if (val > 32) { val = 32; } SPRINTF(work, str_u, val); mkstr255(workstr, work); SetDialogItemText(GetDlgItem(hDlg, IDC_TRAMWAIT), workstr); val = np2cfg.wait[2]; if (val > 32) { val = 32; } SPRINTF(work, str_u, val); mkstr255(workstr, work); SetDialogItemText(GetDlgItem(hDlg, IDC_VRAMWAIT), workstr); val = np2cfg.wait[4]; if (val > 32) { val = 32; } SPRINTF(work, str_u, val); mkstr255(workstr, work); SetDialogItemText(GetDlgItem(hDlg, IDC_GRCGWAIT), workstr); val = np2cfg.realpal; if (val > 64) { val = 64; } SPRINTF(work, str_d, val - 32); mkstr255(workstr, work); SetDialogItemText(GetDlgItem(hDlg, IDC_REALPAL), workstr); lcd = np2cfg.LCD_MODE & 3; SetControlValue(lcdbtn[0], lcd & 1); SetControlValue(lcdbtn[1], (lcd & 2) >> 1); skipline = (np2cfg.skipline)?1:0; SetControlValue(skipbtn, skipline); SPRINTF(work, str_u, np2cfg.skiplight); mkstr255(workstr, work); SetDialogItemText(GetDlgItem(hDlg, IDC_SKIPLIGHT), workstr); SetDialogDefaultItem(hDlg, IDOK); SetDialogCancelItem(hDlg, IDCANCEL); done = 0; while(!done) { ModalDialog(NULL, &item); switch(item) { case IDOK: update = 0; if (np2cfg.uPD72020 != chip) { np2cfg.uPD72020 = chip; update |= SYS_UPDATECFG; gdc_restorekacmode(); gdcs.grphdisp |= GDCSCRN_ALLDRAW2; } if (np2cfg.grcg != grcg) { np2cfg.grcg = grcg; update |= SYS_UPDATECFG; gdcs.grphdisp |= GDCSCRN_ALLDRAW2; } if (np2cfg.color16 != color16) { np2cfg.color16 = color16; update |= SYS_UPDATECFG; } GetDialogItemText(GetDlgItem(hDlg, IDC_TRAMWAIT), workstr); mkcstr(work, sizeof(work), workstr); val = milstr_solveINT(work); if (val > 32) { val = 32; } waitval[0] = val; waitval[1] = (val)?1:0; GetDialogItemText(GetDlgItem(hDlg, IDC_VRAMWAIT), workstr); mkcstr(work, sizeof(work), workstr); val = milstr_solveINT(work); if (val > 32) { val = 32; } waitval[2] = val; waitval[3] = (val)?1:0; GetDialogItemText(GetDlgItem(hDlg, IDC_GRCGWAIT), workstr); mkcstr(work, sizeof(work), workstr); val = milstr_solveINT(work); if (val > 32) { val = 32; } waitval[4] = val; waitval[5] = (val)?1:0; if (memcmp(np2cfg.wait, waitval, 6)) { CopyMemory(np2cfg.wait, waitval, 6); update |= SYS_UPDATECFG; } GetDialogItemText(GetDlgItem(hDlg, IDC_REALPAL), workstr); mkcstr(work, sizeof(work), workstr); val = milstr_solveINT(work) + 32; if (val > 64) { val = 64; } if (np2cfg.realpal != val) { np2cfg.realpal = val; update |= SYS_UPDATECFG; } renewal = 0; if (np2cfg.skipline != skipline) { np2cfg.skipline = skipline; renewal = 1; } GetDialogItemText(GetDlgItem(hDlg, IDC_SKIPLIGHT), workstr); mkcstr(work, sizeof(work), workstr); val = milstr_solveINT(work); if (val > 255) { val = 255; } if (np2cfg.skiplight != val) { np2cfg.skiplight = val; renewal = 1; } if (renewal) { pal_makeskiptable(); } if (np2cfg.LCD_MODE != lcd) { np2cfg.LCD_MODE = lcd; pal_makelcdpal(); renewal = 1; } if (renewal) { update |= SYS_UPDATECFG; scrndraw_redraw(); } sysmng_update(update); done = IDOK; break; case IDCANCEL: done = IDCANCEL; break; case IDC_LCD: lcd ^= 1; SetControlValue(lcdbtn[0], lcd & 1); break; case IDC_LCDX: lcd ^= 2; SetControlValue(lcdbtn[1], (lcd & 2) >> 1); break; case IDC_SKIPLINE: skipline ^= 1; SetControlValue(skipbtn, skipline); break; case IDC_GDC7220: chip = 0; setchip(chipbtn, chip); break; case IDC_GDC72020: chip = 1; setchip(chipbtn, chip); break; case IDC_GRCGNON: grcg = 0; setgrcg(grcgbtn, grcg); break; case IDC_GRCG: grcg = 1; setgrcg(grcgbtn, grcg); break; case IDC_GRCG2: grcg = 2; setgrcg(grcgbtn, grcg); break; case IDC_EGC: grcg = 3; setgrcg(grcgbtn, grcg); break; case IDC_PC980124: color16 ^= 1; SetControlValue(c16btn, color16); break; } } DisposeDialog(hDlg); }
static BRESULT inireadcb(void *arg, const char *para, const char *key, const char *data) { char work[512]; INITBL *p; BOOL rv; if (arg == NULL) { return(FAILURE); } if (milstr_cmp(para, ((INIARG)arg)->title)) { return(SUCCESS); } p = ((INIARG)arg)->tbl; while (p < ((INIARG)arg)->tblterm) { if (!milstr_cmp(key, p->item)) { rv = TRUE; switch (p->itemtype & INITYPE_MASK) { case INITYPE_STR: milstr_ncpy((char *)p->value, data, p->arg); break; case INITYPE_BOOL: *((UINT8 *)p->value) = (!milstr_cmp(data, str_true))?1:0; break; case INITYPE_BITMAP: inisetbmp((UINT8 *)p->value, p->arg, milstr_cmp(data, str_true) == 0); break; case INITYPE_ARGS16: milstr_ncpy(work, data, 512); inirdargs16(work, p); break; case INITYPE_ARGH8: milstr_ncpy(work, data, 512); inirdargh8(work, p); break; case INITYPE_SINT8: case INITYPE_UINT8: *((UINT8 *)p->value) = (UINT8)milstr_solveINT(data); break; case INITYPE_SINT16: case INITYPE_UINT16: *((UINT16 *)p->value) = (UINT16)milstr_solveINT(data); break; case INITYPE_SINT32: case INITYPE_UINT32: *((UINT32 *)p->value) = (UINT32)milstr_solveINT(data); break; case INITYPE_HEX8: *((UINT8 *)p->value) = (UINT8)milstr_solveHEX(data); break; case INITYPE_HEX16: *((UINT16 *)p->value) = (UINT16)milstr_solveHEX(data); break; case INITYPE_HEX32: *((UINT32 *)p->value) = (UINT32)milstr_solveHEX(data); break; case INITYPE_BYTE3: milstr_ncpy(work, data, 512); inirdbyte3(work, p); break; case INITYPE_KB: milstr_ncpy(work, data, 512); inirdkb(work, p); break; case INITYPE_SNDDRV: milstr_ncpy(work, data, 512); inirdsnddrv(work, p); break; case INITYPE_INTERP: milstr_ncpy(work, data, 512); inirdinterp(work, p); break; default: rv = FALSE; break; } if (rv) { update_iniread_flag(p); } } p++; } return (SUCCESS); }
static void cfgupdate(HWND hWnd) { UINT update; TCHAR work[32]; UINT val; const TCHAR *str; update = 0; GetDlgItemText(hWnd, IDC_BASECLOCK, work, NELEMENTS(work)); if (work[0] == '1') { val = PCBASECLOCK20; } else { val = PCBASECLOCK25; } if (np2cfg.baseclock != val) { np2cfg.baseclock = val; update |= SYS_UPDATECFG | SYS_UPDATECLOCK; } GetDlgItemText(hWnd, IDC_MULTIPLE, work, NELEMENTS(work)); val = (UINT)milstr_solveINT(work); if (val < 1) { val = 1; } else if (val > 32) { val = 32; } if (np2cfg.multiple != val) { np2cfg.multiple = val; update |= SYS_UPDATECFG | SYS_UPDATECLOCK; } if (GetDlgItemCheck(hWnd, IDC_MODELVM)) { str = str_VM; } else if (GetDlgItemCheck(hWnd, IDC_MODELEPSON)) { str = str_EPSON; } else { str = str_VX; } if (milstr_cmp(np2cfg.model, str)) { milstr_ncpy(np2cfg.model, str, NELEMENTS(np2cfg.model)); update |= SYS_UPDATECFG; } if (GetDlgItemCheck(hWnd, IDC_RATE11)) { val = 11025; } else if (GetDlgItemCheck(hWnd, IDC_RATE22)) { val = 22050; } else { val = 44100; } if (np2cfg.samplingrate != (UINT16)val) { np2cfg.samplingrate = (UINT16)val; update |= SYS_UPDATECFG | SYS_UPDATERATE; soundrenewal = 1; } GetDlgItemText(hWnd, IDC_SOUNDBUF, work, NELEMENTS(work)); val = (UINT)milstr_solveINT(work); if (val < 40) { val = 40; } else if (val > 1000) { val = 1000; } if (np2cfg.delayms != (UINT16)val) { np2cfg.delayms = (UINT16)val; update |= SYS_UPDATECFG | SYS_UPDATESBUF; soundrenewal = 1; } sysmng_update(update); }