#include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setWindowState(Qt::WindowMaximized); setWindowFlags(Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint); qExec.start("/usr/sbin/fw_printenv video_mipi_edp"); qExec.waitForFinished(); QString result = qExec.readAllStandardOutput(); char *p = result.toLatin1().data(); QString checkCrc = qExec.readAllStandardError(); char *q = checkCrc.toLatin1().data(); if(strstr(q, "Bad CRC") != NULL){ ui->video_mipi->setText(tr("error:environment variable is empty, please write a valid environment variable to flash, you can only click the exit button")); ui->video_edp->setText(tr("error:environment variable is empty, please write a valid environment variable to flash, you can only click the exit button")); ui->video_hdmi->setText(tr("error:environment variable is empty, please write a valid environment variable to flash, you can only click the exit button")); ui->video_lvds->setText(tr("error:environment variable is empty, please write a valid environment variable to flash, you can only click the exit button")); ui->video_mipi->setEnabled(false); ui->video_edp->setEnabled(false); ui->video_hdmi->setEnabled(false); ui->video_lvds->setEnabled(false); QPalette pal; pal.setColor(QPalette::Button, Qt::red); ui->video_mipi->setPalette(pal); ui->video_edp->setPalette(pal); ui->video_hdmi->setPalette(pal); ui->video_lvds->setPalette(pal); pal.setColor(QPalette::Button, Qt::blue); ui->exitBtn->setPalette(pal); }else{ if (strstr(p + strlen("video_mipi_edp"), "mipi") != NULL) { ui->video_mipi->setText(tr("video-mipi:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_mipi->setPalette(pal); ui->video_edp->setText(tr("video-edp:off")); pal.setColor(QPalette::Button, Qt::red); ui->video_edp->setPalette(pal); } else if (strstr(p + strlen("video_mipi_edp"), "edp") != NULL) { ui->video_edp->setText(tr("video-edp:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_edp->setPalette(pal); ui->video_mipi->setText(tr("video-mipi:off")); pal.setColor(QPalette::Button, Qt::red); ui->video_mipi->setPalette(pal); } else { QPalette pal; ui->video_edp->setText(tr("video-edp:off")); pal.setColor(QPalette::Button, Qt::red); ui->video_edp->setPalette(pal); ui->video_mipi->setText(tr("video-mipi:off")); pal.setColor(QPalette::Button, Qt::red); ui->video_mipi->setPalette(pal); } qExec.start("/usr/sbin/fw_printenv video_hdmi"); qExec.waitForFinished(); result = qExec.readAllStandardOutput(); p = result.toLatin1().data(); if (strstr(p + strlen("video_hdmi"), "hdmi") != NULL) { ui->video_hdmi->setText(tr("video-hdmi:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_hdmi->setPalette(pal); } else { ui->video_hdmi->setText(tr("video-hdmi:off")); QPalette pal; pal.setColor(QPalette::Button, Qt::red); ui->video_hdmi->setPalette(pal); } qExec.start("/usr/sbin/fw_printenv video_lvds_rgb"); qExec.waitForFinished(); result = qExec.readAllStandardOutput(); p = result.toLatin1().data(); if (strstr(p + strlen("video_lvds_rgb"), "lvds") != NULL) { ui->video_lvds->setText(tr("video-lvds:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_lvds->setPalette(pal); } else { ui->video_lvds->setText(tr("video-lvds:off")); QPalette pal; pal.setColor(QPalette::Button, Qt::red); ui->video_lvds->setPalette(pal); } } connect(ui->video_mipi, &QPushButton::clicked, this, &MainWindow::video_mipi_clicked); connect(ui->video_hdmi, &QPushButton::clicked, this, &MainWindow::video_hdmi_clicked); connect(ui->video_lvds, &QPushButton::clicked, this, &MainWindow::video_lvds_clicked); connect(ui->video_edp, &QPushButton::clicked, this, &MainWindow::video_edp_clicked); connect(ui->exitBtn, &QPushButton::clicked, this, [=](){ close(); }); } MainWindow::~MainWindow() { delete ui; } void MainWindow::video_mipi_clicked() { if (ui->video_mipi->text() == "video-mipi:on") { ui->video_mipi->setText(tr("video-mipi:off")); QPalette pal; pal.setColor(QPalette::Button, Qt::red); ui->video_mipi->setPalette(pal); system("fw_setenv video_mipi_edp none"); } else { ui->video_mipi->setText(tr("video-mipi:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_mipi->setPalette(pal); system("fw_setenv video_mipi_edp mipi"); ui->video_edp->setText(tr("video-edp:off")); pal.setColor(QPalette::Button, Qt::red); ui->video_edp->setPalette(pal); } } void MainWindow::video_lvds_clicked() { if (ui->video_lvds->text() == "video-lvds:on") { ui->video_lvds->setText(tr("video-lvds:off")); QPalette pal; pal.setColor(QPalette::Button, Qt::red); ui->video_lvds->setPalette(pal); system("fw_setenv video_lvds_rgb none"); } else { ui->video_lvds->setText(tr("video-lvds:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_lvds->setPalette(pal); system("fw_setenv video_lvds_rgb lvds"); } } void MainWindow::video_edp_clicked() { if (ui->video_edp->text() == "video-edp:on") { ui->video_edp->setText(tr("video-edp:off")); QPalette pal; pal.setColor(QPalette::Button, Qt::red); ui->video_edp->setPalette(pal); system("fw_setenv video_mipi_edp none"); } else { ui->video_edp->setText(tr("video-edp:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_edp->setPalette(pal); system("fw_setenv video_mipi_edp edp"); ui->video_mipi->setText(tr("video-mipi:off")); pal.setColor(QPalette::Button, Qt::red); ui->video_mipi->setPalette(pal); } } void MainWindow::video_hdmi_clicked() { if (ui->video_hdmi->text() == "video-hdmi:on") { ui->video_hdmi->setText(tr("video-hdmi:off")); QPalette pal; pal.setColor(QPalette::Button, Qt::red); ui->video_hdmi->setPalette(pal); system("fw_setenv video_hdmi off"); } else { ui->video_hdmi->setText(tr("video-hdmi:on")); QPalette pal; pal.setColor(QPalette::Button, Qt::green); ui->video_hdmi->setPalette(pal); system("fw_setenv video_hdmi hdmi"); } }