📄 parse_display_cmdline.c
字号:
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 + -