void InputEvents::eventTaskTransition(const TCHAR *misc) { if (protected_task_manager == NULL) return; if (StringIsEqual(misc, _T("start"))) { const StartStats &start_stats = CommonInterface::Calculated().ordered_task_stats.start; if (!start_stats.task_started) return; TCHAR TempAll[120]; _stprintf(TempAll, _T("\r\n%s: %s\r\n%s:%s\r\n%s: %s"), _("Altitude"), FormatUserAltitude(start_stats.altitude).c_str(), _("Speed"), FormatUserSpeed(start_stats.ground_speed, true).c_str(), _("Time"), FormatLocalTimeHHMM((int)start_stats.time, CommonInterface::GetComputerSettings().utc_offset).c_str()); Message::AddMessage(_("Task start"), TempAll); } else if (StringIsEqual(misc, _T("next"))) { Message::AddMessage(_("Next turnpoint")); } else if (StringIsEqual(misc, _T("finish"))) { Message::AddMessage(_("Task finished")); } }
void InputEvents::eventTaskTransition(const TCHAR *misc) { if (protected_task_manager == NULL) return; if (StringIsEqual(misc, _T("start"))) { AircraftState start_state = protected_task_manager->GetStartState(); TCHAR TempTime[40]; TCHAR TempAlt[40]; TCHAR TempSpeed[40]; FormatSignedTimeHHMM(TempTime, (int)TimeLocal((int)start_state.time)); FormatUserAltitude(start_state.altitude, TempAlt, true); FormatUserSpeed(start_state.ground_speed,TempSpeed, true); TCHAR TempAll[120]; _stprintf(TempAll, _T("\r\nAltitude: %s\r\nSpeed:%s\r\nTime: %s"), TempAlt, TempSpeed, TempTime); Message::AddMessage(_("Task start"), TempAll); } else if (StringIsEqual(misc, _T("tp"))) { Message::AddMessage(_("Next turnpoint")); } else if (StringIsEqual(misc, _T("finish"))) { Message::AddMessage(_("Task finished")); } else if (StringIsEqual(misc, _T("ready"))) { Message::AddMessage(_("In sector, arm advance when ready")); } }
gcc_const static inline StringBuffer<TCHAR, 32> FormatUserSpeed(double value, bool precision=true) { StringBuffer<TCHAR, 32> buffer; FormatUserSpeed(value, buffer.data(), true, precision); return buffer; }
void InfoBoxData::SetCommentFromSpeed(fixed new_value, bool precision) { FormatUserSpeed(new_value, comment.buffer(), true, precision); }
void InfoBoxData::SetValueFromSpeed(fixed new_value, bool precision) { FormatUserSpeed(new_value, value.buffer(), false, precision); SetValueUnit(Units::current.speed_unit); }