示例#1
0
void video_confirm_cancel_clicked(component *c, void *userdata) {
    video_menu_confirm_data *local = userdata;
    settings_video *v = &settings_get()->video;
    *v = *local->old_video_settings;
    video_reinit(v->screen_w, v->screen_h, v->fullscreen, v->vsync, v->scaler, v->scale_factor);

    // Finish the menu
    menu *m = sizer_get_obj(c->parent);
    m->finished = 1;
}
示例#2
0
static void changed_videomode(void *u,int s)
{
    //windowed modes
    if(s <= 3) {
        config.windowed = 1;
        config.windowscale = s + 1;
    }
    else {
        config.windowed = 0;
        config.fullscreen = s - 4;

    }
    video_reinit();
}
示例#3
0
LRESULT CALLBACK PaletteProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	LPNMHDR nmhdr;
	static char tmpstr[1024];
	char *ptr;
	int i;
	int reinitvideo = 0;

	switch(message) {
		case WM_INITDIALOG:
			CheckDlgButton(hDlg,IDC_FRAMELIMITCHECK,config_get_bool("video.framelimit") ? BST_CHECKED : BST_UNCHECKED);

			//video filters
			ptr = config_get_string("video.filter");
			for(i=0;filters[i];i++) {
				ComboBox_AddString(GetDlgItem(hDlg,IDC_FILTERCOMBO),filters[i]);
				if(stricmp(filters[i],ptr) == 0)
					ComboBox_SetCurSel(GetDlgItem(hDlg,IDC_FILTERCOMBO),i);
			}

			//scale
			for(i=0;scales[i];i++) {
				ComboBox_AddString(GetDlgItem(hDlg,IDC_SCALECOMBO),scales[i]);
				if((i + 1) == config_get_int("video.scale"))
					ComboBox_SetCurSel(GetDlgItem(hDlg,IDC_SCALECOMBO),i);
			}

			//port1 input devices
			ptr = config_get_string("input.port0");
			for(i=0;inputdevices[i];i++) {
				ComboBox_AddString(GetDlgItem(hDlg,IDC_PORT1COMBO),inputdevices[i]);
				if(stricmp(inputdevices[i],ptr) == 0)
					ComboBox_SetCurSel(GetDlgItem(hDlg,IDC_PORT1COMBO),i);
			}

			//port2 input devices
			ptr = config_get_string("input.port1");
			for(i=0;inputdevices[i];i++) {
				ComboBox_AddString(GetDlgItem(hDlg,IDC_PORT2COMBO),inputdevices[i]);
				if(stricmp(inputdevices[i],ptr) == 0)
					ComboBox_SetCurSel(GetDlgItem(hDlg,IDC_PORT2COMBO),i);
			}

			//expansion port devices
			ptr = config_get_string("input.expansion");
			for(i=0;inputexpansion[i];i++) {
				ComboBox_AddString(GetDlgItem(hDlg,IDC_EXPANSIONCOMBO),inputexpansion[i]);
				if(stricmp(inputexpansion[i],ptr) == 0)
					ComboBox_SetCurSel(GetDlgItem(hDlg,IDC_EXPANSIONCOMBO),i);
			}

			return(TRUE);

		case WM_NOTIFY:
			nmhdr = (LPNMHDR)lParam;
			switch(nmhdr->code) {
				case PSN_APPLY:
					config_set_bool("video.framelimit",IsDlgButtonChecked(hDlg,IDC_FRAMELIMITCHECK) ? 1 : 0);
					ptr = mem_strdup(config_get_string("video.filter"));
					GetDlgItemText_SetConfig(hDlg,IDC_FILTERCOMBO,"video.filter");
					if(stricmp(ptr,config_get_string("video.filter")) != 0) {
						reinitvideo = 1;
					}
					mem_free(ptr);
					i = ComboBox_GetCurSel(GetDlgItem(hDlg,IDC_SCALECOMBO));
					if(i != CB_ERR) {
						if(config_get_int("video.scale") != (i + 1)) {
							config_set_int("video.scale",i + 1);
							reinitvideo = 1;
						}
					}
					if(reinitvideo) {
						video_reinit();
					}
					GetDlgItemText_SetConfig(hDlg,IDC_PORT1COMBO,"input.port0");
					GetDlgItemText_SetConfig(hDlg,IDC_PORT2COMBO,"input.port1");
					nes_set_inputdev(0,get_device_id(config_get_string("input.port0")));
					nes_set_inputdev(1,get_device_id(config_get_string("input.port1")));
					return(TRUE);
			}
			break;
	}
	return(FALSE);
}