📄 w32g_pref.c
字号:
extern int w32g_syn_do_after_pref_apply ( void );#endifextern int IniFileAutoSave;static void PrefSettingApply(void){#ifndef IA_W32G_SYN w32g_send_rc(RC_EXT_APPLY_SETTING, 0);#else int before_pref_apply_ok; before_pref_apply_ok = ( w32g_syn_do_before_pref_apply () == 0 ); ApplySettingPlayer(sp_temp); ApplySettingTiMidity(st_temp); SaveSettingPlayer(sp_current); SaveSettingTiMidity(st_current); memcpy(sp_temp, sp_current, sizeof(SETTING_PLAYER)); memcpy(st_temp, st_current, sizeof(SETTING_TIMIDITY)); if(IniFileAutoSave) SaveIniFile(sp_current, st_current); if ( before_pref_apply_ok ) w32g_syn_do_after_pref_apply (); PrefWndSetOK = 0;// PrefWndDoing = 0;#endif}void reload_cfg(void){ free_instrument_map(); clean_up_pathlist(); free_instruments(0); tmdy_free_config(); timidity_start_initialize(); read_config_file ( sp_temp->ConfigFile, 0 ); PrefSettingApply();#ifndef IA_W32G_SYN TracerWndApplyQuietChannel(st_temp->quietchannels);#endif}static BOOL APIENTRYPrefPlayerDialogProc(HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam){ static int initflag = 1; switch (uMess){ case WM_INITDIALOG: SetDlgItemText(hwnd,IDC_EDIT_CONFIG_FILE,TEXT(sp_temp->ConfigFile)); { char buff[64]; sprintf(buff,"%d",sp_temp->SubWindowMax); SetDlgItemText(hwnd,IDC_EDIT_SUBWINDOW_MAX,TEXT(buff)); } switch(sp_temp->PlayerLanguage){ case LANGUAGE_ENGLISH: CheckRadioButton(hwnd,IDC_RADIOBUTTON_JAPANESE,IDC_RADIOBUTTON_ENGLISH, IDC_RADIOBUTTON_ENGLISH); break; default: case LANGUAGE_JAPANESE: CheckRadioButton(hwnd,IDC_RADIOBUTTON_JAPANESE,IDC_RADIOBUTTON_ENGLISH, IDC_RADIOBUTTON_JAPANESE); break; } DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_AUTOQUIT, strchr(st_temp->opt_ctl + 1, 'x')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_AUTOUNIQ, strchr(st_temp->opt_ctl + 1, 'u')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_AUTOREFINE, strchr(st_temp->opt_ctl + 1, 'R')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_AUTOSTART, strchr(st_temp->opt_ctl + 1, 'a')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_NOT_CONTINUE, strchr(st_temp->opt_ctl + 1, 'C')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_NOT_DRAG_START, !strchr(st_temp->opt_ctl + 1, 'd')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_NOT_LOOPING, !strchr(st_temp->opt_ctl + 1, 'l')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECKBOX_RANDOM, strchr(st_temp->opt_ctl + 1, 'r')); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECK_SEACHDIRRECURSIVE, sp_temp->SeachDirRecursive); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECK_DOCWNDINDEPENDENT, sp_temp->DocWndIndependent); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECK_DOCWNDAUTOPOPUP, sp_temp->DocWndAutoPopup); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECK_INIFILE_AUTOSAVE, sp_temp->IniFileAutoSave); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECK_AUTOLOAD_PLAYLIST, sp_temp->AutoloadPlaylist); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECK_AUTOSAVE_PLAYLIST, sp_temp->AutosavePlaylist); DLG_FLAG_TO_CHECKBUTTON(hwnd,IDC_CHECK_POS_SIZE_SAVE, sp_temp->PosSizeSave); initflag = 0; break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_BUTTON_CONFIG_FILE: { char filename[MAXPATH+1]; filename[0] = '\0'; SendDlgItemMessage(hwnd,IDC_EDIT_CONFIG_FILE,WM_GETTEXT, (WPARAM)MAX_PATH,(LPARAM)TEXT(filename)); if(!DlgOpenConfigFile(filename,hwnd)) if(filename[0]!='\0') SetDlgItemText(hwnd,IDC_EDIT_CONFIG_FILE,TEXT(filename)); } break; case IDC_BUTTON_CFG_EDIT: ShellExecute(NULL, "open", "notepad.exe", ConfigFile, NULL, SW_SHOWNORMAL); break;/* case IDC_BUTTON_CFG_DIR: ShellExecute(NULL, "open", ConfigFileOpenDir, NULL, NULL, SW_SHOWNORMAL); break;*/ case IDC_BUTTON_CFG_RELOAD: { int i; for (i = 0; i < PREF_PAGE_MAX; i++ ) { SendMessage ( pref_pages[i].hwnd, WM_MYSAVE, (WPARAM)0, (LPARAM)0 ); } reload_cfg(); SetWindowLong(hwnd, DWL_MSGRESULT, TRUE); } break; case IDC_RADIOBUTTON_JAPANESE: case IDC_RADIOBUTTON_ENGLISH: break; default: break; } PrefWndSetOK = 1; break; case WM_MYSAVE: { if ( initflag ) break; SendDlgItemMessage(hwnd,IDC_EDIT_CONFIG_FILE,WM_GETTEXT, (WPARAM)MAX_PATH,(LPARAM)TEXT(sp_temp->ConfigFile)); { char buff[64]; SendDlgItemMessage(hwnd,IDC_EDIT_SUBWINDOW_MAX,WM_GETTEXT, (WPARAM)60,(LPARAM)TEXT(buff)); sp_temp->SubWindowMax = atoi(buff); if ( sp_temp->SubWindowMax < 1 ) sp_temp->SubWindowMax = 1; if ( sp_temp->SubWindowMax > 10 ) sp_temp->SubWindowMax = 10; } if(SendDlgItemMessage(hwnd,IDC_RADIOBUTTON_ENGLISH,BM_GETCHECK,0,0)){ sp_temp->PlayerLanguage = LANGUAGE_ENGLISH; } else if(SendDlgItemMessage(hwnd,IDC_RADIOBUTTON_JAPANESE,BM_GETCHECK,0,0)){ sp_temp->PlayerLanguage = LANGUAGE_JAPANESE; } { int flag; SettingCtlFlag(st_temp, 'x', DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_AUTOQUIT,flag)); SettingCtlFlag(st_temp, 'u', DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_AUTOUNIQ,flag)); SettingCtlFlag(st_temp, 'R', DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_AUTOREFINE,flag)); SettingCtlFlag(st_temp, 'a', DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_AUTOSTART,flag)); SettingCtlFlag(st_temp, 'C', DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_NOT_CONTINUE,flag)); SettingCtlFlag(st_temp, 'd', !DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_NOT_DRAG_START,flag)); SettingCtlFlag(st_temp, 'l', !DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_NOT_LOOPING,flag)); SettingCtlFlag(st_temp, 'r', DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECKBOX_RANDOM,flag)); } DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECK_SEACHDIRRECURSIVE, sp_temp->SeachDirRecursive); DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECK_DOCWNDINDEPENDENT, sp_temp->DocWndIndependent); DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECK_DOCWNDAUTOPOPUP, sp_temp->DocWndAutoPopup); DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECK_INIFILE_AUTOSAVE, sp_temp->IniFileAutoSave); DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECK_AUTOLOAD_PLAYLIST, sp_temp->AutoloadPlaylist); DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECK_AUTOSAVE_PLAYLIST, sp_temp->AutosavePlaylist); DLG_CHECKBUTTON_TO_FLAG(hwnd,IDC_CHECK_POS_SIZE_SAVE, sp_temp->PosSizeSave); SetWindowLong(hwnd,DWL_MSGRESULT,FALSE); } break; case WM_SIZE: return FALSE; case WM_CLOSE: break; default: break; } return FALSE;}// IDC_COMBO_REVERB#define cb_num_IDC_COMBO_REVERB 5static char *cb_info_IDC_COMBO_REVERB_en[] = { "No Reverb", "Standard Reverb", "Global Old Reverb", "New Reverb", "Global New Reverb",};static char *cb_info_IDC_COMBO_REVERB_jp[] = { "儕僶乕僽側偟", "昗弨儕僶乕僽", "昗弨儕僶乕僽乮僌儘乕僶儖乯", "怴儕僶乕僽", "怴儕僶乕僽乮僌儘乕僶儖乯",};// IDC_COMBO_CHORUS#define cb_num_IDC_COMBO_CHORUS 3static char *cb_info_IDC_COMBO_CHORUS_en[] = { "No Chorus", "Standard Chorus", "Surround Chorus",};static char *cb_info_IDC_COMBO_CHORUS_jp[] = { "僐乕儔僗側偟", "昗弨僐乕儔僗", "僒儔僂儞僪僐乕儔僗",};// IDC_COMBO_DELAY#define cb_num_IDC_COMBO_DELAY 2static char *cb_info_IDC_COMBO_DELAY_en[] = { "No Delay", "Standard Delay",};static char *cb_info_IDC_COMBO_DELAY_jp[] = { "僨傿儗僀側偟", "昗弨僨傿儗僀",};// IDC_COMBO_LPF#define cb_num_IDC_COMBO_LPF 3static char *cb_info_IDC_COMBO_LPF_en[] = { "No Filter", "Lowpass Filter (12dB/oct)", "Lowpass Filter (24dB/oct)",};static char *cb_info_IDC_COMBO_LPF_jp[] = { "僼傿儖僞側偟", "LPF (12dB/oct)", "LPF (24dB/oct)",};// IDC_COMBO_MODULEstruct _ModuleList { int num; char *name;};static struct _ModuleList cb_info_IDC_COMBO_MODULE[] = { MODULE_TIMIDITY_DEFAULT, "TiMidity++ Default", MODULE_SC55, "SC-55", MODULE_SC88, "SC-88", MODULE_SC88PRO, "SC-88Pro", MODULE_SC8850, "SC-8850", MODULE_MU50, "MU-50", MODULE_MU80, "MU-80", MODULE_MU90, "MU-90", MODULE_MU100, "MU-100", MODULE_SBLIVE, "Sound Blaster Live!", MODULE_SBAUDIGY, "Sound Blaster Audigy", MODULE_TIMIDITY_SPECIAL1, "TiMidity++ Special 1", MODULE_TIMIDITY_DEBUG, "TiMidity++ Debug",};#define cb_num_IDC_COMBO_MODULE (sizeof(cb_info_IDC_COMBO_MODULE) / sizeof(struct _ModuleList))static int find_combo_module_item(int val){ int i; for (i = 0; i < cb_num_IDC_COMBO_MODULE; i++) if (val == cb_info_IDC_COMBO_MODULE[i].num) {return i;} return 0;}static BOOL APIENTRYPrefTiMidity1DialogProc(HWND hwnd, UINT uMess, WPARAM wParam, LPARAM lParam){ static int initflag = 1; int i; char **cb_info; switch (uMess){ case WM_INITDIALOG: // CHORUS if (PlayerLanguage == LANGUAGE_JAPANESE) cb_info = cb_info_IDC_COMBO_CHORUS_jp; else cb_info = cb_info_IDC_COMBO_CHORUS_en; for (i = 0; i < cb_num_IDC_COMBO_CHORUS; i++) SendDlgItemMessage(hwnd, IDC_COMBO_CHORUS, CB_INSERTSTRING, (WPARAM) -1, (LPARAM) cb_info[i]); if(GetDlgItemInt(hwnd, IDC_EDIT_CHORUS, NULL, FALSE)==0) SetDlgItemInt(hwnd, IDC_EDIT_CHORUS, 1, TRUE); if (st_temp->opt_surround_chorus) i = 2; else i = st_temp->opt_chorus_control; if (i >= 0) { SendDlgItemMessage(hwnd, IDC_COMBO_CHORUS, CB_SETCURSEL, (WPARAM) i, (LPARAM) 0); SendDlgItemMessage(hwnd, IDC_CHECKBOX_CHORUS_LEVEL, BM_SETCHECK, 0, 0); } else { SendDlgItemMessage(hwnd, IDC_COMBO_CHORUS, CB_SETCURSEL, (WPARAM) ((-i) / 128 + 1), (LPARAM) 0); SendDlgItemMessage(hwnd, IDC_CHECKBOX_CHORUS_LEVEL, BM_SETCHECK, 1, 0); SetDlgItemInt(hwnd, IDC_EDIT_CHORUS, -i, TRUE); } SendMessage(hwnd, WM_COMMAND, IDC_CHECKBOX_CHORUS_LEVEL, 0); // REVERB if (PlayerLanguage == LANGUAGE_JAPANESE) cb_info = cb_info_IDC_COMBO_REVERB_jp; else cb_info = cb_info_IDC_COMBO_REVERB_en; for (i = 0; i < cb_num_IDC_COMBO_REVERB; i++) SendDlgItemMessage(hwnd, IDC_COMBO_REVERB, CB_INSERTSTRING, (WPARAM) -1, (LPARAM) cb_info[i]); if(GetDlgItemInt(hwnd, IDC_EDIT_REVERB, NULL, FALSE)==0) SetDlgItemInt(hwnd, IDC_EDIT_REVERB, 1, TRUE); if (st_temp->opt_reverb_control >= 0) { SendDlgItemMessage(hwnd, IDC_COMBO_REVERB, CB_SETCURSEL, (WPARAM) st_temp->opt_reverb_control, (LPARAM) 0); SendDlgItemMessage(hwnd, IDC_CHECKBOX_REVERB_LEVEL, BM_SETCHECK, 0, 0); } else { SendDlgItemMessage(hwnd, IDC_COMBO_REVERB, CB_SETCURSEL, (WPARAM) ((-st_temp->opt_reverb_control) / 128 + 1), (LPARAM) 0); SendDlgItemMessage(hwnd, IDC_CHECKBOX_REVERB_LEVEL, BM_SETCHECK, 1, 0); SetDlgItemInt(hwnd, IDC_EDIT_REVERB, (-st_temp->opt_reverb_control) % 128, TRUE); } SendMessage(hwnd, WM_COMMAND, IDC_CHECKBOX_REVERB_LEVEL, 0); // DELAY if (PlayerLanguage == LANGUAGE_JAPANESE) cb_info = cb_info_IDC_COMBO_DELAY_jp; else cb_info = cb_info_IDC_COMBO_DELAY_en; for (i = 0; i < cb_num_IDC_COMBO_DELAY; i++) SendDlgItemMessage(hwnd, IDC_COMBO_DELAY,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -