1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3 #include <fcntl.h>
4 #include <sys/ioctl.h>
5 #include <linux/types.h>
6 #include <linux/spi/spidev.h>
7 #include <QMessageBox>
8 #include <unistd.h>
9 #include <QDir>
10 #include <QDebug>
11
MainWindow(QWidget * parent)12 MainWindow::MainWindow(QWidget *parent) :
13 QMainWindow(parent),
14 ui(new Ui::MainWindow)
15 {
16
17 ui->setupUi(this);
18 setWindowState(Qt::WindowMaximized);
19 setWindowFlags(Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
20
21 qExec.start("/usr/sbin/fw_printenv video_mipi_edp");
22 qExec.waitForFinished();
23 QString result = qExec.readAllStandardOutput();
24 char *p = result.toLatin1().data();
25 if (strstr(p + strlen("video_mipi_edp"), "mipi") != NULL) {
26 ui->video_mipi->setText(tr("video-mipi:on"));
27 QPalette pal;
28 pal.setColor(QPalette::Button, Qt::green);
29 ui->video_mipi->setPalette(pal);
30
31 ui->video_edp->setText(tr("video-edp:off"));
32 pal.setColor(QPalette::Button, Qt::red);
33 ui->video_edp->setPalette(pal);
34 } else if (strstr(p + strlen("video_mipi_edp"), "edp") != NULL) {
35 ui->video_edp->setText(tr("video-edp:on"));
36 QPalette pal;
37 pal.setColor(QPalette::Button, Qt::green);
38 ui->video_edp->setPalette(pal);
39
40 ui->video_mipi->setText(tr("video-mipi:off"));
41 pal.setColor(QPalette::Button, Qt::red);
42 ui->video_mipi->setPalette(pal);
43 } else {
44 QPalette pal;
45 ui->video_edp->setText(tr("video-edp:off"));
46 pal.setColor(QPalette::Button, Qt::red);
47 ui->video_edp->setPalette(pal);
48
49 ui->video_mipi->setText(tr("video-mipi:off"));
50 pal.setColor(QPalette::Button, Qt::red);
51 ui->video_mipi->setPalette(pal);
52 }
53
54 qExec.start("/usr/sbin/fw_printenv video_hdmi");
55 qExec.waitForFinished();
56 result = qExec.readAllStandardOutput();
57 p = result.toLatin1().data();
58 if (strstr(p + strlen("video_hdmi"), "hdmi") != NULL) {
59 ui->video_hdmi->setText(tr("video-hdmi:on"));
60 QPalette pal;
61 pal.setColor(QPalette::Button, Qt::green);
62 ui->video_hdmi->setPalette(pal);
63 } else {
64 ui->video_hdmi->setText(tr("video-hdmi:off"));
65 QPalette pal;
66 pal.setColor(QPalette::Button, Qt::red);
67 ui->video_hdmi->setPalette(pal);
68 }
69
70 qExec.start("/usr/sbin/fw_printenv video_lvds_rgb");
71 qExec.waitForFinished();
72 result = qExec.readAllStandardOutput();
73 p = result.toLatin1().data();
74 if (strstr(p + strlen("video_lvds_rgb"), "lvds") != NULL) {
75 ui->video_lvds->setText(tr("video-lvds:on"));
76 QPalette pal;
77 pal.setColor(QPalette::Button, Qt::green);
78 ui->video_lvds->setPalette(pal);
79 } else {
80 ui->video_lvds->setText(tr("video-lvds:off"));
81 QPalette pal;
82 pal.setColor(QPalette::Button, Qt::red);
83 ui->video_lvds->setPalette(pal);
84 }
85
86 connect(ui->video_mipi, &QPushButton::clicked, this, &MainWindow::video_mipi_clicked);
87 connect(ui->video_hdmi, &QPushButton::clicked, this, &MainWindow::video_hdmi_clicked);
88 connect(ui->video_lvds, &QPushButton::clicked, this, &MainWindow::video_lvds_clicked);
89 connect(ui->video_edp, &QPushButton::clicked, this, &MainWindow::video_edp_clicked);
90
91 connect(ui->exitBtn, &QPushButton::clicked, this, [=](){
92 close();
93 });
94 }
95
~MainWindow()96 MainWindow::~MainWindow()
97 {
98 delete ui;
99 }
100
video_mipi_clicked()101 void MainWindow::video_mipi_clicked()
102 {
103 if (ui->video_mipi->text() == "video-mipi:on") {
104 ui->video_mipi->setText(tr("video-mipi:off"));
105 QPalette pal;
106 pal.setColor(QPalette::Button, Qt::red);
107 ui->video_mipi->setPalette(pal);
108 system("fw_setenv video_mipi_edp none");
109 } else {
110 ui->video_mipi->setText(tr("video-mipi:on"));
111 QPalette pal;
112 pal.setColor(QPalette::Button, Qt::green);
113 ui->video_mipi->setPalette(pal);
114 system("fw_setenv video_mipi_edp mipi");
115
116 ui->video_edp->setText(tr("video-edp:off"));
117 pal.setColor(QPalette::Button, Qt::red);
118 ui->video_edp->setPalette(pal);
119 }
120 }
121
video_lvds_clicked()122 void MainWindow::video_lvds_clicked()
123 {
124 if (ui->video_lvds->text() == "video-lvds:on") {
125 ui->video_lvds->setText(tr("video-lvds:off"));
126 QPalette pal;
127 pal.setColor(QPalette::Button, Qt::red);
128 ui->video_lvds->setPalette(pal);
129 system("fw_setenv video_lvds_rgb none");
130 } else {
131 ui->video_lvds->setText(tr("video-lvds:on"));
132 QPalette pal;
133 pal.setColor(QPalette::Button, Qt::green);
134 ui->video_lvds->setPalette(pal);
135 system("fw_setenv video_lvds_rgb lvds");
136 }
137 }
138
video_edp_clicked()139 void MainWindow::video_edp_clicked()
140 {
141 if (ui->video_edp->text() == "video-edp:on") {
142 ui->video_edp->setText(tr("video-edp:off"));
143 QPalette pal;
144 pal.setColor(QPalette::Button, Qt::red);
145 ui->video_edp->setPalette(pal);
146 system("fw_setenv video_mipi_edp none");
147 } else {
148 ui->video_edp->setText(tr("video-edp:on"));
149 QPalette pal;
150 pal.setColor(QPalette::Button, Qt::green);
151 ui->video_edp->setPalette(pal);
152 system("fw_setenv video_mipi_edp edp");
153
154 ui->video_mipi->setText(tr("video-mipi:off"));
155 pal.setColor(QPalette::Button, Qt::red);
156 ui->video_mipi->setPalette(pal);
157 }
158 }
159
video_hdmi_clicked()160 void MainWindow::video_hdmi_clicked()
161 {
162 if (ui->video_hdmi->text() == "video-hdmi:on") {
163 ui->video_hdmi->setText(tr("video-hdmi:off"));
164 QPalette pal;
165 pal.setColor(QPalette::Button, Qt::red);
166 ui->video_hdmi->setPalette(pal);
167 system("fw_setenv video_hdmi off");
168 } else {
169 ui->video_hdmi->setText(tr("video-hdmi:on"));
170 QPalette pal;
171 pal.setColor(QPalette::Button, Qt::green);
172 ui->video_hdmi->setPalette(pal);
173 system("fw_setenv video_hdmi hdmi");
174 }
175 }
176
177
178