|  |  | @ -50,14 +50,6 @@ void add_str(WINDOW *w, const char *str, Color color = Color::Default, bool bold | 
			
		
	
		
		
			
				
					
					|  |  |  |   if (color != Color::Default) wattroff(w, COLOR_PAIR(color)); |  |  |  |   if (color != Color::Default) wattroff(w, COLOR_PAIR(color)); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | std::string format_seconds(int s) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   int total_minutes = s / 60; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   int seconds = s % 60; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   int hours = total_minutes / 60; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   int minutes = total_minutes % 60; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   return util::string_format("%02d:%02d:%02d", hours, minutes, seconds); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | }  // namespace
 |  |  |  | }  // namespace
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | ConsoleUI::ConsoleUI(Replay *replay, QObject *parent) : replay(replay), sm({"carState", "liveParameters"}), QObject(parent) { |  |  |  | ConsoleUI::ConsoleUI(Replay *replay, QObject *parent) : replay(replay), sm({"carState", "liveParameters"}), QObject(parent) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -177,8 +169,8 @@ void ConsoleUI::updateStatus() { | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |   auto [status_str, status_color] = status_text[status]; |  |  |  |   auto [status_str, status_color] = status_text[status]; | 
			
		
	
		
		
			
				
					
					|  |  |  |   write_item(0, 0, "STATUS:    ", status_str, "      ", false, status_color); |  |  |  |   write_item(0, 0, "STATUS:    ", status_str, "      ", false, status_color); | 
			
		
	
		
		
			
				
					
					|  |  |  |   std::string suffix = " / " + format_seconds(replay->totalSeconds()); |  |  |  |   std::string current_segment = " - " + std::to_string((int)(replay->currentSeconds() / 60)); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |   write_item(0, 25, "TIME:  ", format_seconds(replay->currentSeconds()), suffix, true); |  |  |  |   write_item(0, 25, "TIME:  ", replay->currentDateTime().toString("ddd MMMM dd hh:mm:ss").toStdString(), current_segment, true); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   auto p = sm["liveParameters"].getLiveParameters(); |  |  |  |   auto p = sm["liveParameters"].getLiveParameters(); | 
			
		
	
		
		
			
				
					
					|  |  |  |   write_item(1, 0, "STIFFNESS: ", util::string_format("%.2f %%", p.getStiffnessFactor() * 100), "  "); |  |  |  |   write_item(1, 0, "STIFFNESS: ", util::string_format("%.2f %%", p.getStiffnessFactor() * 100), "  "); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |