Show Driver Camera When In Reverse

This commit is contained in:
James
2025-12-01 12:00:00 -07:00
parent 42947c7977
commit cf070c2aae
5 changed files with 19 additions and 6 deletions
+1
View File
@@ -56,4 +56,5 @@ void FrogPilotUIState::update() {
update_state(this);
frogpilot_scene.conditional_status = frogpilot_scene.enabled ? params_memory.getInt("CEStatus") : 0;
frogpilot_scene.driver_camera_timer = frogpilot_scene.reverse && frogpilot_scene.frogpilot_toggles.value("driver_camera_in_reverse").toBool() ? frogpilot_scene.driver_camera_timer + 1 : 0;
}
+1
View File
@@ -17,6 +17,7 @@ struct FrogPilotUIScene {
bool standstill;
int conditional_status;
int driver_camera_timer;
int started_timer;
QJsonObject frogpilot_toggles;
+15 -4
View File
@@ -70,9 +70,18 @@ void HomeWindow::updateState(const UIState &s, const FrogPilotUIState &fs) {
const QJsonObject &frogpilot_toggles = frogpilot_scene.frogpilot_toggles;
if (s.scene.started) {
developer_sidebar->setVisible(frogpilot_toggles.value("developer_sidebar").toBool());
if (frogpilot_scene.driver_camera_timer >= UI_FREQ / 2) {
showDriverView(true, true);
} else {
if (driver_view->isVisible()) {
sidebar->setVisible(params.getBool("Sidebar") || frogpilot_toggles.value("debug_mode").toBool());
slayout->setCurrentWidget(onroad);
}
frogpilotUIState()->frogpilot_scene.sidebars_open = developer_sidebar->isVisible() && sidebar->isVisible();
developer_sidebar->setVisible(frogpilot_toggles.value("developer_sidebar").toBool());
frogpilotUIState()->frogpilot_scene.sidebars_open = developer_sidebar->isVisible() && sidebar->isVisible();
}
}
}
@@ -94,9 +103,11 @@ void HomeWindow::offroadTransition(bool offroad) {
}
}
void HomeWindow::showDriverView(bool show) {
void HomeWindow::showDriverView(bool show, bool started) {
if (show) {
emit closeSettings();
if (!started) {
emit closeSettings();
}
slayout->setCurrentWidget(driver_view);
} else {
slayout->setCurrentWidget(home);
+1 -1
View File
@@ -58,7 +58,7 @@ signals:
public slots:
void offroadTransition(bool offroad);
void showDriverView(bool show);
void showDriverView(bool show, bool started=false);
void showSidebar(bool show);
protected:
+1 -1
View File
@@ -92,7 +92,7 @@ bool MainWindow::eventFilter(QObject *obj, QEvent *event) {
case QEvent::MouseButtonPress:
case QEvent::MouseMove: {
// ignore events when device is awakened by resetInteractiveTimeout
ignore = !device()->isAwake();
ignore = !device()->isAwake() || frogpilot_scene.driver_camera_timer >= UI_FREQ / 2;
device()->resetInteractiveTimeout(frogpilot_toggles.value("screen_timeout").toInt(), frogpilot_toggles.value("screen_timeout_onroad").toInt());
break;
}