33#include < algorithm>
44#include < QPainter>
55
6- #include " selfdrive/ui/qt/qt_window.h"
76#include " selfdrive/ui/qt/util.h"
87
98const int FACE_IMG_SIZE = 130 ;
109
11- DriverViewWindow::DriverViewWindow (QWidget* parent) : QWidget(parent) {
12- setAttribute (Qt::WA_OpaquePaintEvent);
13- layout = new QStackedLayout (this );
14- layout->setStackingMode (QStackedLayout::StackAll);
15-
16- cameraView = new CameraWidget (" camerad" , VISION_STREAM_DRIVER, true , this );
17- layout->addWidget (cameraView);
18-
19- scene = new DriverViewScene (this );
20- connect (cameraView, &CameraWidget::vipcThreadFrameReceived, scene, &DriverViewScene::frameUpdated);
21- layout->addWidget (scene);
22- layout->setCurrentWidget (scene);
23-
24- QObject::connect (device (), &Device::interactiveTimeout, this , &DriverViewWindow::closeView);
25- }
26-
27- void DriverViewWindow::closeView () {
28- if (isVisible ()) {
29- cameraView->stopVipcThread ();
30- emit done ();
31- }
32- }
33-
34- void DriverViewWindow::mouseReleaseEvent (QMouseEvent* e) {
35- closeView ();
36- }
37-
38- DriverViewScene::DriverViewScene (QWidget* parent) : QWidget(parent) {
10+ DriverViewWindow::DriverViewWindow (QWidget* parent) : CameraWidget(" camerad" , VISION_STREAM_DRIVER, true , parent) {
3911 face_img = loadPixmap (" ../assets/img_driver_face_static.png" , {FACE_IMG_SIZE, FACE_IMG_SIZE});
12+ QObject::connect (device (), &Device::interactiveTimeout, this , &DriverViewWindow::done);
13+ QObject::connect (this , &CameraWidget::clicked, this , &DriverViewWindow::done);
4014}
4115
42- void DriverViewScene::showEvent (QShowEvent* event) {
43- frame_updated = false ;
16+ void DriverViewWindow::showEvent (QShowEvent* event) {
4417 params.putBool (" IsDriverViewEnabled" , true );
4518 device ()->resetInteractiveTimeout (60 );
19+ CameraWidget::showEvent (event);
4620}
4721
48- void DriverViewScene ::hideEvent (QHideEvent* event) {
22+ void DriverViewWindow ::hideEvent (QHideEvent* event) {
4923 params.putBool (" IsDriverViewEnabled" , false );
24+ stopVipcThread ();
5025}
5126
52- void DriverViewScene::frameUpdated () {
53- frame_updated = true ;
54- update ();
55- }
27+ void DriverViewWindow::paintGL () {
28+ CameraWidget::paintGL ();
5629
57- void DriverViewScene::paintEvent (QPaintEvent* event) {
5830 QPainter p (this );
59-
6031 // startup msg
61- if (!frame_updated ) {
32+ if (frames. empty () ) {
6233 p.setPen (Qt::white);
6334 p.setRenderHint (QPainter::TextAntialiasing);
6435 p.setFont (InterFont (100 , QFont::Bold));
@@ -70,7 +41,7 @@ void DriverViewScene::paintEvent(QPaintEvent* event) {
7041 cereal::DriverStateV2::Reader driver_state = sm[" driverStateV2" ].getDriverStateV2 ();
7142 cereal::DriverStateV2::DriverData::Reader driver_data;
7243
73- is_rhd = driver_state.getWheelOnRightProb () > 0.5 ;
44+ bool is_rhd = driver_state.getWheelOnRightProb () > 0.5 ;
7445 driver_data = is_rhd ? driver_state.getRightDriverData () : driver_state.getLeftDriverData ();
7546
7647 bool face_detected = driver_data.getFaceProb () > 0.7 ;
0 commit comments