示例#1
0
文件: mode.c 项目: bojoer/advancemame
static int void_score_compare_crtc(const void* _a, const void* _b)
{
	int r;

	const adv_crtc* a = *(const adv_crtc**)_a;
	const adv_crtc* b = *(const adv_crtc**)_b;

	r = score_compare_crtc(the_context, a, b);

	if (r < 0)
		log_std(("emu:video: compare %s/%s, first is better\n", crtc_name_get(a), crtc_name_get(b)));
	else if (r > 0)
		log_std(("emu:video: compare %s/%s, second is better\n", crtc_name_get(a), crtc_name_get(b)));
	else
		log_std(("emu:video: compare %s/%s, equal\n", crtc_name_get(a), crtc_name_get(b)));

	return r;
}
示例#2
0
static int video_mode_menu(struct advance_video_context* context, struct advance_ui_context* ui_context, int selected, unsigned input)
{
	struct ui_menu menu;
	unsigned mac;
	int exit_index;
	int auto_index;
	unsigned i;
	const adv_crtc* crtc;

	if (selected >= 1)
		selected = selected - 1;
	else
		selected = 0;

	advance_ui_menu_init(&menu);

	advance_ui_menu_title_insert(&menu, "Video Mode");

	auto_index = advance_ui_menu_text_insert(&menu, "Auto");

	crtc = 0;
	for (i = 0; i < context->state.crtc_mac; ++i) {
		char buffer[128];
		mode_desc_print(context, buffer, sizeof(buffer), context->state.crtc_map[i]);
		if (advance_ui_menu_text_insert(&menu, buffer) == selected)
			crtc = context->state.crtc_map[i];
	}

	exit_index = advance_ui_menu_text_insert(&menu, "Return to Main Menu");

	mac = advance_ui_menu_done(&menu, ui_context, selected);

	if (input == OSD_INPUT_DOWN) {
		selected = (selected + 1) % mac;
	}

	if (input == OSD_INPUT_UP) {
		selected = (selected + mac - 1) % mac;
	}

	if (input == OSD_INPUT_SELECT) {
		if (selected == exit_index) {
			selected = -1;
		} else if (selected == auto_index) {
			struct advance_video_config_context config = context->config;

			sncpy(config.resolution_buffer, sizeof(config.resolution_buffer), "auto");

			advance_video_reconfigure(context, &config);

			/* show at screen the new configuration name */
			advance_ui_message(ui_context, "%s", mode_current_name(context));
		} else {
			struct advance_video_config_context config = context->config;

			sncpy(config.resolution_buffer, sizeof(config.resolution_buffer), crtc_name_get(crtc));

			advance_video_reconfigure(context, &config);
		}
	}

	if (input == OSD_INPUT_CANCEL)
		selected = -1;

	if (input == OSD_INPUT_CONFIGURE)
		selected = -2;

	return selected + 1;
}
示例#3
0
文件: mode.c 项目: bojoer/advancemame
const char* mode_current_name(const struct advance_video_context* context)
{
	return crtc_name_get(context->state.crtc_selected);
}