xref: /OK3568_Linux_fs/app/forlinx/forlinx_qt/ubootmenu/mainwindow.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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