|  |  | @ -15,6 +15,7 @@ int main(int argc, char *argv[]) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   cmd_parser.addPositionalArgument("route", "the drive to replay. find your drives at connect.comma.ai"); |  |  |  |   cmd_parser.addPositionalArgument("route", "the drive to replay. find your drives at connect.comma.ai"); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cmd_parser.addOption({"demo", "use a demo route instead of providing your own"}); |  |  |  |   cmd_parser.addOption({"demo", "use a demo route instead of providing your own"}); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cmd_parser.addOption({"qcam", "load qcamera"}); |  |  |  |   cmd_parser.addOption({"qcam", "load qcamera"}); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   cmd_parser.addOption({"ecam", "load wide road camera"}); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cmd_parser.addOption({"data_dir", "local directory with routes", "data_dir"}); |  |  |  |   cmd_parser.addOption({"data_dir", "local directory with routes", "data_dir"}); | 
			
		
	
		
		
			
				
					
					|  |  |  |   cmd_parser.process(app); |  |  |  |   cmd_parser.process(app); | 
			
		
	
		
		
			
				
					
					|  |  |  |   const QStringList args = cmd_parser.positionalArguments(); |  |  |  |   const QStringList args = cmd_parser.positionalArguments(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -29,10 +30,17 @@ int main(int argc, char *argv[]) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   dir.mkdir(msgq_path); |  |  |  |   dir.mkdir(msgq_path); | 
			
		
	
		
		
			
				
					
					|  |  |  |   setenv("OPENPILOT_PREFIX", qPrintable(uuid), 1); |  |  |  |   setenv("OPENPILOT_PREFIX", qPrintable(uuid), 1); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   int ret = 0; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   const QString route = args.empty() ? DEMO_ROUTE : args.first(); |  |  |  |   const QString route = args.empty() ? DEMO_ROUTE : args.first(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   uint32_t replay_flags = REPLAY_FLAG_NONE; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   if (cmd_parser.isSet("ecam")) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     replay_flags |= REPLAY_FLAG_ECAM; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   } else if (cmd_parser.isSet("qcam")) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     replay_flags |= REPLAY_FLAG_QCAMERA; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   CANMessages p(&app); |  |  |  |   CANMessages p(&app); | 
			
		
	
		
		
			
				
					
					|  |  |  |   if (p.loadRoute(route, cmd_parser.value("data_dir"), cmd_parser.isSet("qcam"))) { |  |  |  |   int ret = 0; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   if (p.loadRoute(route, cmd_parser.value("data_dir"), replay_flags)) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     MainWindow w; |  |  |  |     MainWindow w; | 
			
		
	
		
		
			
				
					
					|  |  |  |     w.showMaximized(); |  |  |  |     w.showMaximized(); | 
			
		
	
		
		
			
				
					
					|  |  |  |     ret = app.exec(); |  |  |  |     ret = app.exec(); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |