# pragma once 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  <QVBoxLayout> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  <memory> 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "selfdrive/ui/qt/onroad/buttons.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "selfdrive/ui/qt/widgets/cameraview.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  AnnotatedCameraWidget  :  public  CameraWidget  { 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Q_OBJECT 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								public : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  explicit  AnnotatedCameraWidget ( VisionStreamType  type ,  QWidget *  parent  =  0 ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  updateState ( const  UIState  & s ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								private : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  drawText ( QPainter  & p ,  int  x ,  int  y ,  const  QString  & text ,  int  alpha  =  255 ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  QVBoxLayout  * main_layout ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ExperimentalButton  * experimental_btn ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  QPixmap  dm_img ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  speed ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  QString  speedUnit ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  setSpeed ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  is_cruise_set  =  false ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  is_metric  =  false ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  dmActive  =  false ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  hideBottomIcons  =  false ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  rightHandDM  =  false ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  float  dm_fade_state  =  1.0 ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  v_ego_cluster_seen  =  false ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  int  status  =  STATUS_DISENGAGED ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  std : : unique_ptr < PubMaster >  pm ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								  int  skip_frame_count  =  0 ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  bool  wide_cam_requested  =  false ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								protected : 
 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  paintGL ( )  override ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  initializeGL ( )  override ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  showEvent ( QShowEvent  * event )  override ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  updateFrameMat ( )  override ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  drawLaneLines ( QPainter  & painter ,  const  UIState  * s ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  drawLead ( QPainter  & painter ,  const  cereal : : RadarState : : LeadData : : Reader  & lead_data ,  const  QPointF  & vd ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  drawHud ( QPainter  & p ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  void  drawDriverState ( QPainter  & painter ,  const  UIState  * s ) ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  inline  QColor  redColor ( int  alpha  =  255 )  {  return  QColor ( 201 ,  34 ,  49 ,  alpha ) ;  } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  inline  QColor  whiteColor ( int  alpha  =  255 )  {  return  QColor ( 255 ,  255 ,  255 ,  alpha ) ;  } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  inline  QColor  blackColor ( int  alpha  =  255 )  {  return  QColor ( 0 ,  0 ,  0 ,  alpha ) ;  } 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  double  prev_draw_t  =  0 ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  FirstOrderFilter  fps_filter ; 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;