⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse_display_cmdline.c

📁 1. 8623L平台
💻 C
📖 第 1 页 / 共 5 页
字号:
	if (RMCompareAscii(argv[i], "-f")) {		if (argc > i+1) { 			if (RMCompareAscii(argv[i+1], "edid")) {				options->standard = EMhwlibTVStandard_HDMI_480p59;  // fallback standard				options->edid_sel = DH_EDID_auto;				err = RM_OK;			} else {				err = GetTVStandard(argv[i+1], &(options->standard));			}			i += 2;		}		else 			err = RM_ERROR;			}	else if (RMCompareAscii(argv[i], "-r")) {		if ((argc > i+1) && opt_arg(argv[i+1][0])) {			i++;			err = RM_OK;			if (options->edid_sel != DH_EDID_fmatch) {				options->edid_sel = DH_EDID_match;			}			options->standard = EMhwlibTVStandard_HDMI_480p59;  // fallback standard			if (RMCompareAscii(argv[i], "pref")) {				options->edid_sel = DH_EDID_auto;			} else if (RMCompareAscii(argv[i], "480i") || RMCompareAscii(argv[i], "480i59")) {				options->dvi_hdmi_edid_hsize = 720;				options->dvi_hdmi_edid_vsize = 480;				options->dvi_hdmi_edid_vfreq = 59;				options->dvi_hdmi_edid_intl = TRUE;			} else if (RMCompareAscii(argv[i], "480i60")) {				options->dvi_hdmi_edid_hsize = 720;				options->dvi_hdmi_edid_vsize = 480;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = TRUE;			} else if (RMCompareAscii(argv[i], "480p") || RMCompareAscii(argv[i], "480p59")) {				options->dvi_hdmi_edid_hsize = 720;				options->dvi_hdmi_edid_vsize = 480;				options->dvi_hdmi_edid_vfreq = 59;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "480p60")) {				options->dvi_hdmi_edid_hsize = 720;				options->dvi_hdmi_edid_vsize = 480;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "576i") || RMCompareAscii(argv[i], "576i50")) {				options->dvi_hdmi_edid_hsize = 720;				options->dvi_hdmi_edid_vsize = 576;				options->dvi_hdmi_edid_vfreq = 50;				options->dvi_hdmi_edid_intl = TRUE;			} else if (RMCompareAscii(argv[i], "576p") || RMCompareAscii(argv[i], "576p50")) {				options->dvi_hdmi_edid_hsize = 720;				options->dvi_hdmi_edid_vsize = 576;				options->dvi_hdmi_edid_vfreq = 50;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "720p50")) {				options->dvi_hdmi_edid_hsize = 1280;				options->dvi_hdmi_edid_vsize = 720;				options->dvi_hdmi_edid_vfreq = 50;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "720p") || RMCompareAscii(argv[i], "720p59")) {				options->dvi_hdmi_edid_hsize = 1280;				options->dvi_hdmi_edid_vsize = 720;				options->dvi_hdmi_edid_vfreq = 59;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "720p60")) {				options->dvi_hdmi_edid_hsize = 1280;				options->dvi_hdmi_edid_vsize = 720;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "1080i50")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 50;				options->dvi_hdmi_edid_intl = TRUE;			} else if (RMCompareAscii(argv[i], "1080i") || RMCompareAscii(argv[i], "1080i59")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 59;				options->dvi_hdmi_edid_intl = TRUE;			} else if (RMCompareAscii(argv[i], "1080i60")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = TRUE;			} else if (RMCompareAscii(argv[i], "1080p23")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 23;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "1080p24")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 24;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "1080p50")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 50;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "1080p") || RMCompareAscii(argv[i], "1080p59")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 59;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "1080p60")) {				options->dvi_hdmi_edid_hsize = 1920;				options->dvi_hdmi_edid_vsize = 1080;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = FALSE;			} else if (RMCompareAscii(argv[i], "vga")) {				options->dvi_hdmi_edid_hsize = 640;				options->dvi_hdmi_edid_vsize = 480;				options->dvi_hdmi_edid_vfreq = 60;				options->dvi_hdmi_edid_intl = FALSE;			} else if ((argv[i][0] >= '0') && (argv[i][0] <= '9')) {				RMint32 VIC;				RMasciiToInt32(argv[i], &VIC);				if ((VIC == 0) || (VIC > 59)) {					fprintf(stderr, "VIC out of range: %lu\n", VIC);					err = RM_ERROR;				} else {					options->dvi_hdmi_edid_descriptor = VIC;  // hack				}			} else {				fprintf(stderr, "Unknown resolution: -r %s\n", argv[i]);				err = RM_ERROR;			}		} else {			err = RM_OK;			options->edid_sel = DH_EDID_auto;			options->standard = EMhwlibTVStandard_HDMI_480p59;  // fallback standard		}		i++;	}#ifdef RMFEATURE_HAS_HDSD_CONVERTER	else if (RMCompareAscii(argv[i], "-sdf50")) {		if (argc > i+1) {			err = GetTVStandard(argv[i+1], &(options->sd_standard_50Hz));			i += 2;		} else {			err = RM_ERROR;		}	}	else if (RMCompareAscii(argv[i], "-sdf60")) {		if (argc > i+1) {			err = GetTVStandard(argv[i+1], &(options->sd_standard_60Hz));			i += 2;		} else {			err = RM_ERROR;		}	}	else if (RMCompareAscii(argv[i], "-sdf")) {		options->use_hdsd_conversion = TRUE;		if ((argc > i+1) && (argv[i+1][0] != '-')) {			err = GetTVStandard(argv[i+1], &(options->sd_standard));			i++;		} else {			options->sd_autodetect = TRUE;			err = RM_OK;		}		i++;	}	else if (RMCompareAscii(argv[i], "-sdbuf")) {		i++;		options->allow_otf = FALSE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-sdotf")) {		i++;		options->allow_buf = FALSE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-sdcav")) {		i++;		options->sd_component = TRUE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-hdcav")) {		i++;		options->sd_cav_1080p = TRUE;		err = RM_OK;	}	else if (RMCompareAscii(argv[i], "-sdasp")) {		if (argc > i+2) { 			RMasciiToUInt32(argv[i+1], &(options->sd_ar_x));			RMasciiToUInt32(argv[i+2], &(options->sd_ar_y));			i += 3;			err = RM_OK;		}		else			err = RM_ERROR;			}#endif	else if (RMCompareAscii(argv[i], "-vgaf")) {		if (argc > i+1) { 			if (RMCompareAscii(argv[i+1], "edid")) {				options->vga_standard = EMhwlibTVStandard_HDMI_480p59;  // fallback standard				options->vga_edid_sel = DH_EDID_auto;				err = RM_OK;			} else {				err = GetTVStandard(argv[i+1], &(options->vga_standard));			}			i += 2;		}		else 			err = RM_ERROR;			}	else if (RMCompareAscii(argv[i], "-vmf")) {		if (argc > i+1) { 			strncpy(options->vidmode_filename, argv[i + 1], 2048);			options->vidmode_filename[2047] = '\0';			options->standard = EMhwlibTVStandard_Custom;			err = RM_OK;			i += 2;		}		else 			err = RM_ERROR;			}	else if (RMCompareAscii(argv[i], "-o")) {		if (argc > i+1) {			if (RMCompareAscii(argv[i+1], "svideo")) {				options->connector = DCCVideoConnector_SVIDEO;			}			else if (RMCompareAscii(argv[i+1], "composite") || RMCompareAscii(argv[i+1], "cvbs")) {				options->connector = DCCVideoConnector_COMPOSITE;			}			else if (RMCompareAscii(argv[i+1], "component_rgb_scart")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_RGB_SCART;			}			else if (RMCompareAscii(argv[i+1], "component_rgb_sog")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_RGB_SOG;			}			else if (RMCompareAscii(argv[i+1], "component_rgb_smpte")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_RGB_SMPTE;			}			else if (RMCompareAscii(argv[i+1], "component_yuv_betacam")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_YUV_BETACAM;			}			else if (RMCompareAscii(argv[i+1], "component_yuv_m2")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_YUV_M2;			}			else if (RMCompareAscii(argv[i+1], "component_yuv_smpte") || RMCompareAscii(argv[i+1], "cav")) {				options->connector = DCCVideoConnector_COMPONENT;				options->component = EMhwlibComponentMode_YUV_SMPTE;			}			else if (RMCompareAscii(argv[i+1], "scart")) {				options->connector = DCCVideoConnector_SCART;			}			else if (RMCompareAscii(argv[i+1], "dvi_8")) {				options->connector = DCCVideoConnector_DVI;				options->bus_size = 8;			}			else if (RMCompareAscii(argv[i+1], "dvi_16")) {				options->connector = DCCVideoConnector_DVI;				options->bus_size = 16;			}			else if (RMCompareAscii(argv[i+1], "dvi_24") || RMCompareAscii(argv[i+1], "dvi") || RMCompareAscii(argv[i+1], "hdmi")) {				options->connector = DCCVideoConnector_DVI;				options->bus_size = 24;			}			else if (RMCompareAscii(argv[i+1], "lvds")) {				options->connector = DCCVideoConnector_LVDS;				options->bus_size = 24;			}			else if (RMCompareAscii(argv[i+1], "dig_8")) {				options->connector = DCCVideoConnector_Digital;				options->bus_size = 8;			}			else if (RMCompareAscii(argv[i+1], "dig_16")) {				options->connector = DCCVideoConnector_Digital;				options->bus_size = 16;			}			else if (RMCompareAscii(argv[i+1], "dig_24")) {				options->connector = DCCVideoConnector_Digital;				options->bus_size = 24;			}			else if (RMCompareAscii(argv[i+1], "vga")) {				options->connector = DCCVideoConnector_VGA;			}			else				err = RM_ERROR;						if (err != RM_ERROR) {				err = RM_OK;			}			i += 2;		}		else 			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-dc")) {		if (argc > i + 1) { 			RMasciiToUInt32(argv[i + 1], &(options->component_size));			i += 2;			if (options->component_size == 8) {				err = RM_OK;//#ifdef RMFEATURE_HAS_DEEP_COLOR			} else if ((options->component_size == 10) || (options->component_size == 12)) {				err = RM_OK;//#endif			} else {				fprintf(stderr, "ERROR: wrong color component depth with %s: %lu\n", argv[i], options->component_size);				err = RM_ERROR;			}		} else err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-bcsh")) {		if (argc > i+4) {			RMint32 bh; 			RMasciiToInt32(argv[i+1], &bh); 			options->brightness = (bh > 127) ? 127 : (bh < -128) ? -128 : bh;			RMasciiToUInt8(argv[i+2], &(options->contrast)); 			RMasciiToUInt8(argv[i+3], &(options->saturation_blue));			options->saturation_red = options->saturation_blue;			RMasciiToInt32(argv[i+4], &bh);			options->hue = (bh > 64) ? 64 : (bh < -64) ? -64 : bh;			i += 5;			err = RM_OK;		}		else			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-bcssh")) {		if (argc > i+5) {			RMint32 bh; 			RMasciiToInt32(argv[i+1], &bh); 			options->brightness = (bh > 127) ? 127 : (bh < -128) ? -128 : bh;			RMasciiToUInt8(argv[i+2], &(options->contrast)); 			RMasciiToUInt8(argv[i+3], &(options->saturation_blue));			RMasciiToUInt8(argv[i+4], &(options->saturation_red));			RMasciiToInt32(argv[i+5], &bh);			options->hue = (bh > 64) ? 64 : (bh < -64) ? -64 : bh;			i += 5;			err = RM_OK;		}		else			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-cs")) {		if (argc > i+1) {			err = parse_color_space(argv[i + 1], &(options->color_space));			if (options->color_space == EMhwlibColorSpace_None) err = RM_ERROR;			i += 2;		}		else			err = RM_ERROR;	}	else if (RMCompareAscii(argv[i], "-mcs")) {		if (argc > i+1) {			err = parse_color_space(argv[i + 1], &(options->mixer_color_space));			i += 2;		}		else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -