#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "system/hardware/hw.h" #include "selfdrive/ui/qt/qt_window.h" #include "selfdrive/ui/qt/util.h" #include "selfdrive/ui/qt/window.h" int main(int argc, char *argv[]) { setpriority(PRIO_PROCESS, 0, -20); qInstallMessageHandler(swagLogMessageHandler); initApp(argc, argv); QApplication a(argc, argv); QCommandLineParser parser; parser.setApplicationDescription("OpenPilot UI with screen recording"); parser.addHelpOption(); parser.addVersionOption(); QCommandLineOption outputOption(QStringList() << "o" << "output", "Output file path for the recorded video", "file"); parser.addOption(outputOption); parser.process(a); if (!parser.isSet(outputOption)) { qCritical() << "Error: Output file path is required. Use --output or -o to specify it."; return -1; } QString outputFile = parser.value(outputOption); QTranslator translator; QString translation_file = QString::fromStdString(Params().get("LanguageSetting")); if (!translator.load(QString(":/%1").arg(translation_file)) && translation_file.length()) { qCritical() << "Failed to load translation file:" << translation_file; } a.installTranslator(&translator); MainWindow w; w.setAttribute(Qt::WA_DontShowOnScreen); w.setAttribute(Qt::WA_Mapped); w.setAttribute(Qt::WA_NoSystemBackground); w.resize(DEVICE_SCREEN_SIZE); setMainWindow(&w); a.installEventFilter(&w); return a.exec(); }