66#include < QVBoxLayout>
77
88#include " selfdrive/ui/qt/offroad/experimental_mode.h"
9+ #include " selfdrive/ui/qt/offroad/dashcam_mode.h"
910#include " selfdrive/ui/qt/util.h"
1011#include " selfdrive/ui/qt/widgets/prime.h"
1112
@@ -25,6 +26,7 @@ HomeWindow::HomeWindow(QWidget* parent) : QWidget(parent) {
2526
2627 home = new OffroadHome (this );
2728 QObject::connect (home, &OffroadHome::openSettings, this , &HomeWindow::openSettings);
29+ QObject::connect (home, &OffroadHome::toggleDashcam, this , &HomeWindow::toggleDashcam);
2830 slayout->addWidget (home);
2931
3032 onroad = new OnroadWindow (this );
@@ -44,6 +46,15 @@ HomeWindow::HomeWindow(QWidget* parent) : QWidget(parent) {
4446 QObject::connect (uiState (), &UIState::offroadTransition, sidebar, &Sidebar::offroadTransition);
4547}
4648
49+ void HomeWindow::toggleDashcam (){
50+ MessageBuilder msg;
51+ printf (" Toggle dashcam\n " );
52+ this ->enableDashcam = !this ->enableDashcam ;
53+ auto cr0 = msg.initEvent ().initCustomReserved0 ();
54+ cr0.setDashcamEnable (this ->enableDashcam );
55+ uiState ()->pm ->send (" customReserved0" , msg);
56+ }
57+
4758void HomeWindow::showSidebar (bool show) {
4859 sidebar->setVisible (show);
4960}
@@ -168,6 +179,10 @@ OffroadHome::OffroadHome(QWidget* parent) : QFrame(parent) {
168179 QObject::connect (experimental_mode, &ExperimentalModeButton::openSettings, this , &OffroadHome::openSettings);
169180 right_column->addWidget (experimental_mode, 1 );
170181
182+ DashcamModeButton *dashcam_button = new DashcamModeButton (this );
183+ QObject::connect (dashcam_button, &DashcamModeButton::toggleDashcam, this , &OffroadHome::toggleDashcam);
184+ right_column->addWidget (dashcam_button,1 );
185+
171186 SetupWidget *setup_widget = new SetupWidget;
172187 QObject::connect (setup_widget, &SetupWidget::openSettings, this , &OffroadHome::openSettings);
173188 right_column->addWidget (setup_widget, 1 );
0 commit comments