200 lines
6.4 KiB
C++
200 lines
6.4 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
#include <fcntl.h>
|
|
#include <sys/ioctl.h>
|
|
#include <linux/types.h>
|
|
#include <linux/spi/spidev.h>
|
|
#include <QMessageBox>
|
|
#include <unistd.h>
|
|
#include <QDir>
|
|
#include <QDebug>
|
|
|
|
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");
|
|
}
|
|
}
|
|
|
|
|