void InfoBoxContentTeamCode::Update(InfoBoxWindow &infobox) { if (!XCSoarInterface::SettingsComputer().TeamCodeRefWaypoint) { infobox.SetInvalid(); return; } // Set Value infobox.SetValue(XCSoarInterface::Calculated().OwnTeamCode.GetCode()); // Set Comment if (XCSoarInterface::SettingsComputer().TeammateCodeValid == true){ infobox.SetComment(XCSoarInterface::SettingsComputer().TeammateCode.GetCode()); if (!XCSoarInterface::SettingsComputer().TeamFlarmTracking) infobox.SetColorBottom(0); else if (XCSoarInterface::Basic().flarm.FindTraffic( XCSoarInterface::SettingsComputer().TeamFlarmIdTarget) != NULL) infobox.SetColorBottom(2); else infobox.SetColorBottom(1); } else infobox.SetCommentInvalid(); }
void InfoBoxContentTeamBearing::Update(InfoBoxWindow &infobox) { if (XCSoarInterface::SettingsComputer().TeamFlarmIdTarget.defined() || XCSoarInterface::SettingsComputer().TeammateCodeValid == true){ // Set Value infobox.SetValue(XCSoarInterface::Calculated().TeammateBearing, _T("T")); } else infobox.SetValueInvalid(); // Set Comment if (!XCSoarInterface::SettingsComputer().TeamFlarmIdTarget.defined()) infobox.SetCommentInvalid(); else if (!string_is_empty(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget)) infobox.SetComment(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget); else infobox.SetComment(_T("???")); if (XCSoarInterface::Basic().flarm.FindTraffic( XCSoarInterface::SettingsComputer().TeamFlarmIdTarget) != NULL) infobox.SetColorBottom(2); else infobox.SetColorBottom(1); }
void InfoBoxContentTeamDistance::Update(InfoBoxWindow &infobox) { if (!XCSoarInterface::SettingsComputer().TeammateCodeValid) { infobox.SetInvalid(); return; } // Set Value TCHAR tmp[32]; Units::FormatUserDistance(XCSoarInterface::Calculated().TeammateRange, tmp, 32, false); infobox.SetValue(tmp); // Set Unit infobox.SetValueUnit(Units::DistanceUnit); // Set Comment if (!XCSoarInterface::SettingsComputer().TeamFlarmIdTarget.defined()) infobox.SetCommentInvalid(); else if (!string_is_empty(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget)) infobox.SetComment(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget); else infobox.SetComment(_T("???")); if (XCSoarInterface::Basic().flarm.FindTraffic( XCSoarInterface::SettingsComputer().TeamFlarmIdTarget) != NULL) infobox.SetColorBottom(2); else infobox.SetColorBottom(1); }
void InfoBoxContentTeamBearingDiff::Update(InfoBoxWindow &infobox) { #ifndef OLD_TASK infobox.SetInvalid(); return; #else if (!way_points.verify_index(XCSoarInterface::SettingsComputer(). TeamCodeRefWaypoint) || !XCSoarInterface::SettingsComputer().TeammateCodeValid) { infobox.SetInvalid(); return; } // Set Value Angle Value = XCSoarInterface::Calculated().TeammateBearing - XCSoarInterface::Basic().TrackBearing; SetValueBearingDifference(infobox, Value); #endif // Set Comment if (!XCSoarInterface::SettingsComputer().TeamFlarmIdTarget.defined()) infobox.SetCommentInvalid(); else if (!string_is_empty(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget)) infobox.SetComment(XCSoarInterface::SettingsComputer().TeamFlarmCNTarget); else infobox.SetComment(_T("???")); if (XCSoarInterface::Basic().flarm.FindTraffic( XCSoarInterface::SettingsComputer().TeamFlarmIdTarget) != NULL) infobox.SetColorBottom(2); else infobox.SetColorBottom(1); }
void InfoBoxContentHomeDistance::Update(InfoBoxWindow &infobox) { const CommonStats &common_stats = XCSoarInterface::Calculated().common_stats; // Set Value SetValueFromDistance(infobox, common_stats.vector_home.Distance); if (XCSoarInterface::Basic().track_available) { Angle bd = common_stats.vector_home.Bearing - XCSoarInterface::Basic().track; SetCommentBearingDifference(infobox, bd); } else infobox.SetCommentInvalid(); }
void InfoBoxContentNextDistance::Update(InfoBoxWindow &infobox) { // use proper non-terminal next task stats const TaskStats &task_stats = XCSoarInterface::Calculated().task_stats; const GlideResult &solution_remaining = XCSoarInterface::Calculated().task_stats.current_leg.solution_remaining; if (!task_stats.task_valid || !solution_remaining.defined()) { infobox.SetInvalid(); return; } // Set Value SetValueFromDistance(infobox, solution_remaining.Vector.Distance); if (XCSoarInterface::Basic().track_available) { Angle bd = solution_remaining.Vector.Bearing - XCSoarInterface::Basic().track; SetCommentBearingDifference(infobox, bd); } else infobox.SetCommentInvalid(); }
void InfoBoxContentBattery::Update(InfoBoxWindow &infobox) { #ifdef HAVE_BATTERY TCHAR tmp[32]; bool DisplaySupplyVoltageAsValue=false; switch (Power::External::Status) { case Power::External::OFF: infobox.SetComment(_("AC Off")); break; case Power::External::ON: if (!XCSoarInterface::Basic().voltage_available) infobox.SetComment(_("AC ON")); else{ DisplaySupplyVoltageAsValue = true; SetValueFromFixed(infobox, _T("%2.1fV"), XCSoarInterface::Basic().voltage); } break; case Power::External::UNKNOWN: default: infobox.SetCommentInvalid(); } #ifndef ANDROID switch (Power::Battery::Status){ case Power::Battery::HIGH: case Power::Battery::LOW: case Power::Battery::CRITICAL: case Power::Battery::CHARGING: if (Power::Battery::RemainingPercentValid){ #endif _stprintf(tmp, _T("%d%%"), Power::Battery::RemainingPercent); if (!DisplaySupplyVoltageAsValue) infobox.SetValue(tmp); else infobox.SetComment(tmp); #ifndef ANDROID } else if (!DisplaySupplyVoltageAsValue) infobox.SetValueInvalid(); else infobox.SetCommentInvalid(); break; case Power::Battery::NOBATTERY: case Power::Battery::UNKNOWN: if (!DisplaySupplyVoltageAsValue) infobox.SetValueInvalid(); else infobox.SetCommentInvalid(); } #endif return; #endif if (XCSoarInterface::Basic().voltage_available) { SetValueFromFixed(infobox, _T("%2.1fV"), XCSoarInterface::Basic().voltage); return; } infobox.SetInvalid(); }