📄 parse_display_cmdline.c
字号:
else if (RMCompareAscii(argv[i], "-rcd")) { if (argc > i+1) { RMasciiToUInt32(argv[i+1], &(options->rcd)); if (options->rcd > 1) err = RM_ERROR; else { i += 2; err = RM_OK; } } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-asb")) { if (argc > i+1) { RMasciiToUInt32(argv[i+1], &(options->asb)); if (options->asb > 1) err = RM_ERROR; else { i += 2; err = RM_OK; } } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-cgmsa")) { if (argc > i+1) { RMasciiToUInt32(argv[i+1], &options->cgmsa); if (options->cgmsa > 3) err = RM_ERROR; else { i += 2; err = RM_OK; } } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-hwc")) { options->show_hwc = TRUE; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-vgadram")) { options->osd_pictures[1].dramblock = 1; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-nonlin")) { if (argc > i+2) { RMasciiToUInt32(argv[i+1], &(options->nonlinearmode.Width)); RMasciiToUInt32(argv[i+2], &(options->nonlinearmode.Level)); if ((options->nonlinearmode.Width > 3) || (options->nonlinearmode.Level > 3)) { err = RM_ERROR; } else { i += 3; err = RM_OK; } } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-swap")) { if (argc > i+1) { if(RMCompareAscii(argv[i+1], "rgb")) { options->component_order = EMhwlibComponentOrder_RGB; } else if(RMCompareAscii(argv[i+1], "rbg")) { options->component_order = EMhwlibComponentOrder_RBG; } else if(RMCompareAscii(argv[i+1], "grb")) { options->component_order = EMhwlibComponentOrder_GRB; } else if(RMCompareAscii(argv[i+1], "gbr")) { options->component_order = EMhwlibComponentOrder_GBR; } else if(RMCompareAscii(argv[i+1], "brg")) { options->component_order = EMhwlibComponentOrder_BRG; } else if(RMCompareAscii(argv[i+1], "bgr")) { options->component_order = EMhwlibComponentOrder_BGR; } else err = RM_ERROR; if (err != RM_ERROR) err = RM_OK; i += 2; } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-fs")) { if (argc > i+1) { if (RMCompareAscii(argv[i+1], "time")) { options->field_selection = EMhwlibScalerFieldSelection_BestFieldTime; } else if (RMCompareAscii(argv[i+1], "type")) { options->field_selection = EMhwlibScalerFieldSelection_BestFieldType; } else if (RMCompareAscii(argv[i+1], "one")) { options->field_selection = EMhwlibScalerFieldSelection_OneField; } else err = RM_ERROR; if (err != RM_ERROR) err = RM_OK; i += 2; } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-dvi_hdmi")) { if (argc > i+1) { if (RMCompareAscii(argv[i+1], "siI164")) { options->dvi_hdmi_part = DH_siI164; } else if (RMCompareAscii(argv[i+1], "siI170")) { options->dvi_hdmi_part = DH_siI170; } else if (RMCompareAscii(argv[i+1], "siI9030")) { options->dvi_hdmi_part = DH_siI9030; } else if (RMCompareAscii(argv[i+1], "siI9034")) { options->dvi_hdmi_part = DH_siI9034; } else if (RMCompareAscii(argv[i+1], "siI9134")) { options->dvi_hdmi_part = DH_siI9134; } else if (RMCompareAscii(argv[i+1], "anx9030")) { options->dvi_hdmi_part = DH_ANX9030; } else if (RMCompareAscii(argv[i+1], "lvds")) { options->dvi_hdmi_part = DH_lvds; } else if (RMCompareAscii(argv[i+1], "none")) { options->dvi_hdmi_part = DH_no_chip; } else err = RM_ERROR; if (err != RM_ERROR) err = RM_OK; i += 2; } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-hdmi_cec")) { if (argc > i+1) { if (RMCompareAscii(argv[i+1], "auto")) { options->hdmi_cec_part_request = DH_CEC_auto_detect; } else if (RMCompareAscii(argv[i+1], "none")) { options->hdmi_cec_part_request = DH_CEC_no_chip; } else if (RMCompareAscii(argv[i+1], "86xx")) { options->hdmi_cec_part_request = DH_CEC_SMP86xx; } else if (RMCompareAscii(argv[i+1], "SiI9181")) { options->hdmi_cec_part_request = DH_CEC_SiI9181; } else if (RMCompareAscii(argv[i+1], "SiI9185")) { options->hdmi_cec_part_request = DH_CEC_SiI9185; } else { err = RM_ERROR; } if (err != RM_ERROR) { err = RM_OK; if ((argc > i+3) && opt_arg(argv[i+2][0])) { RMuint32 p; RMasciiToUInt32(argv[i + 2], &p); options->hdmi_cec_int = (enum GPIOId_type)p; RMasciiToUInt32(argv[i + 3], &p); options->hdmi_cec_d = (enum GPIOId_type)p; i += 2; } } i += 2; } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-hdmi")) { options->hdmi_force = TRUE; options->hdmi_monitor = TRUE; // force HDMI i++; if ((argc > i) && opt_arg(argv[i][0])) { // optional argument: force DVI or HDMI options->hdmi_monitor = ((argv[i][0] == '0') || (argv[i][0] == 'd') || (argv[i][0] == 'D')) ? FALSE : TRUE; i++; } err = RM_OK; } else if (RMCompareAscii(argv[i], "-hdcp")) { options->dvi_hdmi_hdcp = TRUE; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-edid")) { options->dvi_hdmi_display_edid = TRUE; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-hdmi_de")) { options->hdmi_de = TRUE; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-no_disp")) { options->configure_outports = FALSE; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-edmode")) { if (argc > i + 4) { RMuint32 intl; RMasciiToUInt32(argv[i + 1], &(options->dvi_hdmi_edid_hsize)); RMasciiToUInt32(argv[i + 2], &(options->dvi_hdmi_edid_vsize)); RMasciiToUInt32(argv[i + 3], &(options->dvi_hdmi_edid_vfreq)); if ((argv[i + 4][0] == 'p') || (argv[i + 4][0] == 'P')) { intl = FALSE; } else if ((argv[i + 4][0] == 'i') || (argv[i + 4][0] == 'I')) { intl = TRUE; } else { RMasciiToUInt32(argv[i + 4], &intl); } options->dvi_hdmi_edid_intl = (intl ? TRUE : FALSE); options->standard = EMhwlibTVStandard_HDMI_480p59; // fallback standard if (options->edid_sel != DH_EDID_fmatch) { options->edid_sel = DH_EDID_match; } i += 5; err = RM_OK; } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-edforce")) { if (options->edid_sel == DH_EDID_none) { options->standard = EMhwlibTVStandard_HDMI_480p59; // fallback standard } options->edid_sel = DH_EDID_fmatch; i++; err = RM_OK; } else if (RMCompareAscii(argv[i], "-edid_exclude")) { i++; if (argc <= i) err = RM_ERROR; while ((err != RM_ERROR) && (argc > i) && opt_arg(argv[i][0])) { err = parse_hdmi_mask(argv[i], &(options->edid_exclude_mask), &(options->edid_exclude_mask_vfreq), &(options->edid_exclude_mask_asp)); if (RMSUCCEEDED(err)) { options->standard = EMhwlibTVStandard_HDMI_480p59; // fallback standard options->edid_sel = DH_EDID_mask; } i++; } } else if (RMCompareAscii(argv[i], "-edid_force")) { i++; if (argc <= i) err = RM_ERROR; while ((err != RM_ERROR) && (argc > i) && opt_arg(argv[i][0])) { err = parse_hdmi_mask(argv[i], &(options->edid_force_mask), &(options->edid_force_mask_vfreq), &(options->edid_force_mask_asp)); if (RMSUCCEEDED(err)) { options->standard = EMhwlibTVStandard_HDMI_480p59; // fallback standard options->edid_sel = DH_EDID_mask; } i++; } } else if (RMCompareAscii(argv[i], "-edid_limits")) { options->edid_min_pixclk = 0; options->edid_max_pixclk = 0; options->edid_min_hfreq = 0; options->edid_max_hfreq = 0; options->edid_min_vfreq = 0; options->edid_max_vfreq = 0; i++; if ((argc > i) && opt_arg(argv[i][0])) { RMasciiToUInt32(argv[i], &(options->edid_min_pixclk)); i++; if ((argc > i) && opt_arg(argv[i][0])) { RMasciiToUInt32(argv[i], &(options->edid_max_pixclk)); i++; if ((argc > i) && opt_arg(argv[i][0])) { RMasciiToUInt32(argv[i], &(options->edid_min_hfreq)); i++; if ((argc > i) && opt_arg(argv[i][0])) { RMasciiToUInt32(argv[i], &(options->edid_max_hfreq)); i++; if ((argc > i) && opt_arg(argv[i][0])) { RMasciiToUInt32(argv[i], &(options->edid_min_vfreq)); i++; if ((argc > i) && opt_arg(argv[i][0])) { RMasciiToUInt32(argv[i], &(options->edid_max_vfreq)); i++; } } } } } } if (options->edid_sel == DH_EDID_none) { options->standard = EMhwlibTVStandard_HDMI_480p59; // fallback standard options->edid_sel = DH_EDID_mask; } err = RM_OK; } else if (RMCompareAscii(argv[i], "-edwrite")) { if (argc > i + 1) { options->dvi_hdmi_edid_write = TRUE; options->dvi_hdmi_edid_file = argv[i + 1]; i += 2; err = RM_OK; } else { err = RM_ERROR; } } else if (RMCompareAscii(argv[i], "-edread")) { if (argc > i + 1) { options->dvi_hdmi_edid_read = TRUE; options->dvi_hdmi_edid_file = argv[i + 1]; i += 2; err = RM_OK; } else { err = RM_ERROR; } } else if (RMCompareAscii(argv[i], "-force_edid")) { if (argc > i + 1) { options->dvi_hdmi_edid_override = TRUE; options->dvi_hdmi_edid_file = argv[i + 1]; i += 2; err = RM_OK; } else { err = RM_ERROR; } } else if (RMCompareAscii(argv[i], "-ed")) { if (argc > i+1) { if (argv[i + 1][0] == 'n') { options->edid_sel = DH_EDID_native; } else { RMasciiToUInt32(argv[i+1], &(options->dvi_hdmi_edid_descriptor)); options->edid_sel = DH_EDID_force; } options->standard = EMhwlibTVStandard_HDMI_480p59; // fallback standard i += 2; err = RM_OK; } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-hdmi2c")) { if (argc > i+1) { RMasciiToUInt32(argv[i+1], &(options->i2c_module)); i += 2; if ((argc > i) && (argv[i][0] >= '0') && (argv[i][0] <= '9')) { RMasciiToUInt32(argv[i], &(options->i2c_speed)); i++; } err = RM_OK; } else err = RM_ERROR; } else if (RMCompareAscii(argv[i], "-hdmi_ddc_tx")) { options->i2c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -