mirror of
https://github.com/Quill-OS/quill.git
synced 2024-12-26 23:57:22 -08:00
140 lines
4.3 KiB
C++
140 lines
4.3 KiB
C++
#include "usbms_splash.h"
|
|
#include "ui_usbms_splash.h"
|
|
|
|
#include <QPixmap>
|
|
#include <QScreen>
|
|
#include <QTimer>
|
|
|
|
#include "functions.h"
|
|
|
|
usbms_splash::usbms_splash(QWidget *parent) :
|
|
QWidget(parent),
|
|
ui(new Ui::usbms_splash)
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
// Getting the screen's size
|
|
float sW = QGuiApplication::screens()[0]->size().width();
|
|
float sH = QGuiApplication::screens()[0]->size().height();
|
|
|
|
// Defining what the default icon size will be
|
|
if(global::kobox::showKoboxSplash == true) {
|
|
float stdIconWidth = sW / 1.30;
|
|
float stdIconHeight = sH / 1.30;
|
|
|
|
// Stylesheet
|
|
QFile stylesheetFile(":/resources/eink.qss");
|
|
stylesheetFile.open(QFile::ReadOnly);
|
|
this->setStyleSheet(stylesheetFile.readAll());
|
|
stylesheetFile.close();
|
|
|
|
ui->label->setText("Launching KoBox subsystem");
|
|
ui->label->setStyleSheet("font-size: 14pt");
|
|
ui->label_3->setText("Please wait, this could take a while.");
|
|
string_checkconfig_ro("/opt/inkbox_device");
|
|
if(checkconfig_str_val == "n905\n") {
|
|
ui->label_3->setStyleSheet("font-size: 11pt");
|
|
}
|
|
else {
|
|
ui->label_3->setStyleSheet("font-size: 10pt");
|
|
}
|
|
|
|
QPixmap pixmap(":/resources/kobox-icon.png");
|
|
QPixmap scaledPixmap = pixmap.scaled(stdIconWidth, stdIconHeight, Qt::KeepAspectRatio);
|
|
ui->label_2->setPixmap(scaledPixmap);
|
|
}
|
|
else {
|
|
float stdIconWidth = sW / 1.15;
|
|
float stdIconHeight = sH / 1.15;
|
|
|
|
this->setStyleSheet("background-color:black;");
|
|
ui->label->setStyleSheet("QLabel { background-color : black; color : white; }");
|
|
ui->label_3->setStyleSheet("QLabel { background-color : black; color : white; font-size: 9pt}");
|
|
|
|
QPixmap pixmap(":/resources/usbms.png");
|
|
QPixmap scaledPixmap = pixmap.scaled(stdIconWidth, stdIconHeight, Qt::KeepAspectRatio);
|
|
ui->label_2->setPixmap(scaledPixmap);
|
|
}
|
|
|
|
if(global::usbms::launchUsbms == true) {
|
|
global::usbms::launchUsbms = false;
|
|
usbms_launch();
|
|
}
|
|
}
|
|
|
|
void usbms_splash::usbms_launch()
|
|
{
|
|
QString umount_prog ("umount");
|
|
QStringList umount_args;
|
|
if(global::usbms::koboxExportExtensions == true) {
|
|
umount_args << "/dev/loop10";
|
|
}
|
|
else {
|
|
umount_args << "/dev/loop0";
|
|
}
|
|
QProcess *umount_proc = new QProcess();
|
|
umount_proc->start(umount_prog, umount_args);
|
|
umount_proc->waitForFinished();
|
|
|
|
QString rmmod ("rmmod");
|
|
QStringList rmmod_args;
|
|
rmmod_args << "g_ether.ko";
|
|
QProcess *rmmod_proc = new QProcess();
|
|
rmmod_proc->start(rmmod, rmmod_args);
|
|
rmmod_proc->waitForFinished();
|
|
|
|
QString prog ("insmod");
|
|
QStringList args;
|
|
args << "/external_root/modules/arcotg_udc.ko";
|
|
QProcess *proc = new QProcess();
|
|
proc->start(prog, args);
|
|
proc->waitForFinished();
|
|
|
|
QString prog_1 ("insmod");
|
|
QStringList args_1;
|
|
|
|
if(global::usbms::koboxExportExtensions == true) {
|
|
args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/extensions.img" << "removable=y" << "stall=0";
|
|
}
|
|
else {
|
|
args_1 << "/external_root/modules/g_mass_storage.ko" << "file=/external_root/opt/storage/onboard" << "removable=y" << "stall=0";
|
|
}
|
|
|
|
QProcess *proc_1 = new QProcess();
|
|
proc_1->start(prog_1, args_1);
|
|
proc_1->waitForFinished();
|
|
|
|
QTimer *usbms_t = new QTimer(this);
|
|
usbms_t->setInterval(1000);
|
|
connect(usbms_t, &QTimer::timeout, [&]() {
|
|
QString prog ("mass_storage.sh");
|
|
QStringList args;
|
|
QProcess *proc = new QProcess();
|
|
proc->start(prog, args);
|
|
proc->waitForFinished();
|
|
|
|
QFile modules("/tmp/usbevent");
|
|
modules.open(QIODevice::ReadWrite);
|
|
QTextStream in (&modules);
|
|
const QString content = in.readAll();
|
|
std::string contentstr = content.toStdString();
|
|
modules.close();
|
|
if(contentstr.find("1") != std::string::npos) {
|
|
QString reboot_prog ("busybox");
|
|
QStringList reboot_args;
|
|
reboot_args << "reboot";
|
|
QProcess *reboot_proc = new QProcess();
|
|
reboot_proc->start(reboot_prog, reboot_args);
|
|
reboot_proc->waitForFinished();
|
|
}
|
|
else {
|
|
;
|
|
}
|
|
} );
|
|
usbms_t->start();
|
|
}
|
|
|
|
usbms_splash::~usbms_splash()
|
|
{
|
|
delete ui;
|
|
}
|