@@ -166,6 +166,7 @@ void OnroadAlerts::paintEvent(QPaintEvent *event) {
166166
167167NvgWindow::NvgWindow (VisionStreamType type, QWidget* parent) : fps_filter(UI_FREQ, 3 , 1 . / UI_FREQ), CameraViewWidget(" camerad" , type, true , parent) {
168168 engage_img = loadPixmap (" ../assets/img_chffr_wheel.png" , {img_size, img_size});
169+ dm_img = loadPixmap (" ../assets/img_driver_face.png" , {img_size, img_size});
169170}
170171
171172void NvgWindow::updateState (const UIState &s) {
@@ -185,11 +186,13 @@ void NvgWindow::updateState(const UIState &s) {
185186 setProperty (" speed" , QString::number (std::nearbyint (cur_speed)));
186187 setProperty (" maxSpeed" , maxspeed_str);
187188 setProperty (" speedUnit" , s.scene .is_metric ? " km/h" : " mph" );
189+ setProperty (" hideDM" , cs.getAlertSize () != cereal::ControlsState::AlertSize::NONE);
188190 setProperty (" status" , s.status );
189191
190- // update engageability at 2Hz
192+ // update engageability and DM icons at 2Hz
191193 if (sm.frame % (UI_FREQ / 2 ) == 0 ) {
192194 setProperty (" engageable" , cs.getEngageable () || cs.getEnabled ());
195+ setProperty (" dmActive" , sm[" driverMonitoringState" ].getDriverMonitoringState ().getIsActiveMode ());
193196 }
194197}
195198
@@ -231,6 +234,11 @@ void NvgWindow::drawHud(QPainter &p) {
231234 engage_img, bg_colors[status], 1.0 );
232235 }
233236
237+ // dm icon
238+ if (!hideDM) {
239+ drawIcon (p, radius / 2 + (bdr_s * 2 ), rect ().bottom () - footer_h / 2 ,
240+ dm_img, QColor (0 , 0 , 0 , 70 ), dmActive ? 1.0 : 0.2 );
241+ }
234242 p.restore ();
235243}
236244
0 commit comments