コード例 #1
0
ファイル: Logger.cpp プロジェクト: Plantain/XCSoar
void
Logger::guiToggleLogger(const NMEA_INFO& gps_info,
                     const SETTINGS_COMPUTER& settings,
                     bool noAsk)
{
  if (isLoggerActive()) {
    guiStopLogger(gps_info, noAsk);
  } else {
    guiStartLogger(gps_info, settings, noAsk);
  }
}
コード例 #2
0
void
Logger::guiToggleLogger(const NMEA_INFO& gps_info,
                     const SETTINGS_COMPUTER& settings,
                      const ProtectedTaskManager &protected_task_manager,
                     bool noAsk)
{
  if (isLoggerActive()) {
    guiStopLogger(gps_info, noAsk);
  } else {
    guiStartLogger(gps_info, settings, protected_task_manager, noAsk);
  }
}
コード例 #3
0
void
Logger::guiStopLogger(const NMEA_INFO &gps_info,
                   bool noAsk)
{
  if (!isLoggerActive())
    return;

  if (noAsk || (MessageBoxX(_("Stop Logger"),
                            _("Stop Logger"),
                            MB_YESNO | MB_ICONQUESTION) == IDYES)) {
    Poco::ScopedRWLock protect(lock, true);
    _logger.StopLogger(gps_info);
  }
}
コード例 #4
0
void
Logger::guiStartLogger(const NMEA_INFO& gps_info,
                    const SETTINGS_COMPUTER& settings,
                       const ProtectedTaskManager &protected_task_manager,
                    bool noAsk)
{
  if (isLoggerActive() || gps_info.gps.Replay)
    return;

  OrderedTask* task = protected_task_manager.task_clone();
  Declaration decl(task);
  Profile::GetDeclarationConfig(decl, settings.plane);

  if (task) {
    delete task;

    if (!noAsk) {
      TCHAR TaskMessage[1024];
      _tcscpy(TaskMessage, _T("Start Logger With Declaration\r\n"));
      
      if (decl.size()) {
        for (unsigned i = 0; i< decl.size(); ++i) {
          _tcscat(TaskMessage, decl.get_name(i));
          _tcscat(TaskMessage, _T("\r\n"));
        }
      } else {
        _tcscat(TaskMessage, _T("None"));
      }
      
      if (MessageBoxX(TaskMessage, _("Start Logger"),
                      MB_YESNO | MB_ICONQUESTION) != IDYES)
        return;
    }
  }

  if (!LoggerClearFreeSpace(gps_info)) {
    MessageBoxX(_("Logger inactive, insufficient storage!"),
                _("Logger Error"), MB_OK| MB_ICONERROR);
    LogStartUp(_T("Logger not started: Insufficient Storage"));
    return;
  }

  Poco::ScopedRWLock protect(lock, true);
  _logger.StartLogger(gps_info, settings, strAssetNumber, decl);
}