示例#1
0
void
Profile::Load(SETTINGS_MAP &settings)
{
  Get(szProfileCircleZoom, settings.CircleZoom);
  Get(szProfileMaxAutoZoomDistance, settings.MaxAutoZoomDistance);
  Get(szProfileDrawTopography, settings.EnableTopography);

  LoadTerrainRendererSettings(settings.terrain);

  GetEnum(szProfileAircraftSymbol, settings.aircraft_symbol);

  Get(szProfileTrailDrift, settings.EnableTrailDrift);
  Get(szProfileDetourCostMarker, settings.EnableDetourCostMarker);
  GetEnum(szProfileDisplayTrackBearing, settings.DisplayTrackBearing);
  Get(szProfileAutoZoom, settings.AutoZoom);
  Get(szProfileSnailWidthScale, settings.SnailScaling);

  GetEnum(szProfileSnailType, settings.SnailType);

  unsigned Temp;
  if (Get(szProfileWindArrowStyle, Temp))
    settings.WindArrowStyle = Temp;

  settings.waypoint.LoadFromProfile();

  GetEnum(szProfileSnailTrail, settings.trail_length);

  LoadAirspaceConfig();

  Get(szProfileGliderScreenPosition, settings.GliderScreenPosition);

  bool orientation_found = false;

  Temp = NORTHUP;
  if (Get(szProfileOrientationCircling, Temp))
    orientation_found = true;

  switch (Temp) {
  case TRACKUP:
    settings.OrientationCircling = TRACKUP;
    break;
  case NORTHUP:
    settings.OrientationCircling = NORTHUP;
    break;
  case TARGETUP:
    settings.OrientationCircling = TARGETUP;
    break;
  }

  Temp = NORTHUP;
  if (Get(szProfileOrientationCruise, Temp))
    orientation_found = true;

  switch (Temp) {
  case TRACKUP:
    settings.OrientationCruise = TRACKUP;
    break;
  case NORTHUP:
    settings.OrientationCruise = NORTHUP;
    break;
  case TARGETUP:
    settings.OrientationCruise = TARGETUP;
    break;
  }

  if (!orientation_found) {
    Temp = 1;
    Get(szProfileDisplayUpValue, Temp);
    switch (Temp) {
    case 0:
      settings.OrientationCruise = TRACKUP;
      settings.OrientationCircling = TRACKUP;
      break;
    case 1:
      settings.OrientationCruise = NORTHUP;
      settings.OrientationCircling = NORTHUP;
      break;
    case 2:
      settings.OrientationCruise = TRACKUP;
      settings.OrientationCircling = NORTHUP;
      break;
    case 3:
      settings.OrientationCruise = TRACKUP;
      settings.OrientationCircling = TARGETUP;
      break;
    case 4:
      settings.OrientationCruise = NORTHUP;
      settings.OrientationCircling = TRACKUP;
      break;
    }
  }

  GetEnum(szProfileMapShiftBias, settings.MapShiftBias);
  Get(szProfileEnableFLARMMap, settings.EnableFLARMMap);

  Get(szProfileEnableThermalProfile, settings.EnableThermalProfile);
}
void
Profile::Use()
{
  unsigned Temp = 0;

  LogStartUp(_T("Read registry settings"));

  OrderedTaskBehaviour &osettings_task = 
    XCSoarInterface::SetSettingsComputer().ordered_defaults;

  TaskBehaviour &settings_task = 
    XCSoarInterface::SetSettingsComputer();

  Get(szProfileFinishMinHeight,
		  osettings_task.finish_min_height);
  Get(szProfileStartHeightRef,
		  osettings_task.start_max_height_ref);
  Get(szProfileStartMaxHeight,
		  osettings_task.start_max_height);
  Get(szProfileStartMaxSpeed,
		  osettings_task.start_max_speed);

  Get(szProfileStartMaxHeightMargin,
		  settings_task.start_max_height_margin);
  Get(szProfileStartMaxSpeedMargin,
		  settings_task.start_max_speed_margin);

  unsigned sdtemp = 0;
  Get(szProfileStartType, sdtemp);
  settings_task.sector_defaults.start_type =
      (AbstractTaskFactory::LegalPointType_t)sdtemp;
  Get(szProfileStartRadius,
      settings_task.sector_defaults.start_radius);

  Get(szProfileTurnpointType, sdtemp);
      settings_task.sector_defaults.turnpoint_type =
          (AbstractTaskFactory::LegalPointType_t)sdtemp;
  Get(szProfileTurnpointRadius,
      settings_task.sector_defaults.turnpoint_radius);

  Get(szProfileFinishType, sdtemp);
      settings_task.sector_defaults.finish_type =
          (AbstractTaskFactory::LegalPointType_t)sdtemp;
  Get(szProfileFinishRadius,
      settings_task.sector_defaults.finish_radius);

  Get(szProfileTaskType, sdtemp);
      settings_task.task_type_default =
          (TaskBehaviour::Factory_t)sdtemp;

  Get(szProfileAATMinTime,
      osettings_task.aat_min_time);

  Get(szProfileAATTimeMargin,
      settings_task.optimise_targets_margin);

  LoadUnits();
  Profile::GetInfoBoxManagerConfig(infoBoxManagerConfig);

  SETTINGS_MAP &settings_map = XCSoarInterface::SetSettingsMap();

  bool orientation_found = false;

  Temp = NORTHUP;
  if (Get(szProfileOrientationCircling, Temp))
    orientation_found = true;

  switch (Temp) {
  case TRACKUP:
    settings_map.OrientationCircling = TRACKUP;
    break;
  case NORTHUP:
    settings_map.OrientationCircling = NORTHUP;
    break;
  case TARGETUP:
    settings_map.OrientationCircling = TARGETUP;
    break;
  }

  Temp = NORTHUP;
  if (Get(szProfileOrientationCruise, Temp))
    orientation_found = true;

  switch (Temp) {
  case TRACKUP:
    settings_map.OrientationCruise = TRACKUP;
    break;
  case NORTHUP:
    settings_map.OrientationCruise = NORTHUP;
    break;
  case TARGETUP:
    settings_map.OrientationCruise = TARGETUP;
    break;
  }

  if (!orientation_found) {
    Temp = 1;
    Get(szProfileDisplayUpValue, Temp);
    switch (Temp) {
    case 0:
      settings_map.OrientationCruise = TRACKUP;
      settings_map.OrientationCircling = TRACKUP;
      break;
    case 1:
      settings_map.OrientationCruise = NORTHUP;
      settings_map.OrientationCircling = NORTHUP;
      break;
    case 2:
      settings_map.OrientationCruise = TRACKUP;
      settings_map.OrientationCircling = NORTHUP;
      break;
    case 3:
      settings_map.OrientationCruise = TRACKUP;
      settings_map.OrientationCircling = TARGETUP;
      break;
    case 4:
      settings_map.OrientationCruise = NORTHUP;
      settings_map.OrientationCircling = TRACKUP;
      break;
    }
  }

  GetEnum(szProfileMapShiftBias, settings_map.MapShiftBias);

  settings_map.waypoint.LoadFromProfile();

  SETTINGS_COMPUTER &settings_computer =
    XCSoarInterface::SetSettingsComputer();

  Get(szProfileSafetyAltitudeArrival,
      settings_computer.safety_height_arrival);
  Get(szProfileSafetyAltitudeTerrain,
      settings_computer.route_planner.safety_height_terrain);

  LoadAirspaceConfig();

  GetEnum(szProfileSnailTrail, settings_map.trail_length);

  Get(szProfileTrailDrift,
      settings_map.EnableTrailDrift);

  Get(szProfileDetourCostMarker,
      settings_map.EnableDetourCostMarker);

  GetEnum(szProfileDisplayTrackBearing, settings_map.DisplayTrackBearing);

  Get(szProfileDrawTopography,
      settings_map.EnableTopography);

  LoadTerrainRendererSettings(settings_map.terrain);

  GetEnum(szProfileFinalGlideTerrain,
          settings_computer.FinalGlideTerrain);

  Get(szProfileAutoWind,
      settings_computer.AutoWindMode);

  Get(szProfileExternalWind,
      settings_computer.ExternalWind);

  Get(szProfileCircleZoom,
      settings_map.CircleZoom);

  Get(szProfileMaxAutoZoomDistance,
      settings_map.MaxAutoZoomDistance);

  Get(szProfileHomeWaypoint,
      settings_computer.HomeWaypoint);

  settings_computer.HomeLocationAvailable =
    GetGeoPoint(szProfileHomeLocation, settings_computer.HomeLocation);

  Get(szProfileSnailWidthScale,
      settings_map.SnailScaling);

  GetEnum(szProfileSnailType, settings_map.SnailType);

  Get(szProfileTeamcodeRefWaypoint,
      settings_computer.TeamCodeRefWaypoint);

  Get(szProfileSoundVolume,
      settings_computer.SoundVolume);

  Get(szProfileSoundDeadband,
      settings_computer.SoundDeadband);

  Get(szProfileSoundAudioVario,
      settings_computer.EnableSoundVario);

  Get(szProfileSoundTask,
      settings_computer.EnableSoundTask);

  Get(szProfileSoundModes,
      settings_computer.EnableSoundModes);

#ifdef HAVE_BLANK
  Get(szProfileAutoBlank,
      settings_map.EnableAutoBlank);
#endif

  if (Get(szProfileAverEffTime, Temp))
    settings_computer.AverEffTime = Temp;

  Get(szProfileDebounceTimeout, XCSoarInterface::debounceTimeout);

  /* JMW broken
  if (Get(szProfileAccelerometerZero, Temp))
    AccelerometerZero = Temp;
  if (AccelerometerZero==0.0) {
    AccelerometerZero= 100.0;
    Temp = 100;
    Set(szProfileAccelerometerZero, Temp);
  }
  */

  // new appearance variables
 
  Get(szProfileAppInverseInfoBox,
		  Appearance.InverseInfoBox);

  GetEnum(szProfileAppInfoBoxBorder, Appearance.InfoBoxBorder);
  GetEnum(szProfileAppStatusMessageAlignment, Appearance.StateMessageAlign);
  GetEnum(szProfileAppTextInputStyle, Appearance.TextInputStyle);
  GetEnum(szProfileAppDialogTabStyle, Appearance.DialogTabStyle);
  GetEnum(szProfileAppDialogStyle, DialogStyleSetting);

  Get(szProfileAppInfoBoxColors,
		  Appearance.InfoBoxColors);

  Get(szProfileAutoMc, settings_computer.auto_mc);
  GetEnum(szProfileAutoMcMode, settings_computer.auto_mc_mode);

  if (GetEnum(szProfileOLCRules, settings_computer.contest))
  {
      if ( settings_computer.contest == OLC_Sprint )
        settings_computer.contest = OLC_League; // Handle out-dated Sprint rule in profile
  }

  Get(szProfileEnableExternalTriggerCruise,
      settings_computer.EnableExternalTriggerCruise);

  Get(szProfileUTCOffset,
      settings_computer.UTCOffset);
  if (settings_computer.UTCOffset > 12 * 3600)
    settings_computer.UTCOffset -= 24 * 3600;

  Get(szProfileBlockSTF,
      settings_computer.EnableBlockSTF);
  Get(szProfileAutoZoom,
      settings_map.AutoZoom);
  Get(szProfileMenuTimeout,
      XCSoarInterface::MenuTimeoutMax);
  Get(szProfileLoggerShort,
      settings_computer.LoggerShortName);
  Get(szProfileEnableFLARMMap,
      settings_map.EnableFLARMMap);
  Get(szProfileEnableFLARMGauge,
      settings_map.EnableFLARMGauge);
  Get(szProfileAutoCloseFlarmDialog,
      settings_map.AutoCloseFlarmDialog);
  Get(szProfileEnableTAGauge,
      settings_map.EnableTAGauge);
  Get(szProfileEnableThermalProfile,
      settings_map.EnableThermalProfile);

  Get(szProfileGliderScreenPosition,
      settings_map.GliderScreenPosition);
  Get(szProfileSetSystemTimeFromGPS,
      settings_map.SetSystemTimeFromGPS);
  Get(szProfileUseCustomFonts,
      Appearance.UseCustomFonts);
  Get(szProfileVoiceClimbRate,
      settings_computer.EnableVoiceClimbRate);
  Get(szProfileVoiceTerrain,
      settings_computer.EnableVoiceTerrain);
  Get(szProfileVoiceWaypointDistance,
      settings_computer.EnableVoiceWaypointDistance);
  Get(szProfileVoiceTaskAltitudeDifference,
      settings_computer.EnableVoiceTaskAltitudeDifference);
  Get(szProfileVoiceMacCready,
      settings_computer.EnableVoiceMacCready);
  Get(szProfileVoiceNewWaypoint,
      settings_computer.EnableVoiceNewWaypoint);
  Get(szProfileVoiceInSector,
      settings_computer.EnableVoiceInSector);
  Get(szProfileVoiceAirspace,
      settings_computer.EnableVoiceAirspace);
  Get(szProfileEnableNavBaroAltitude,
      settings_computer.EnableNavBaroAltitude);
  Get(szProfileLoggerTimeStepCruise,
      settings_computer.LoggerTimeStepCruise);
  Get(szProfileLoggerTimeStepCircling,
      settings_computer.LoggerTimeStepCircling);

  if (Get(szProfileSafetyMacCready, Temp))
    settings_computer.safety_mc = fixed(Temp) / 10;

  GetEnum(szProfileAbortTaskMode, settings_computer.abort_task_mode);

  GetEnum(szProfileRoutePlannerMode, settings_computer.route_planner.mode);

  Get(szProfileRoutePlannerAllowClimb,
      settings_computer.route_planner.allow_climb);

  Get(szProfileRoutePlannerUseCeiling,
      settings_computer.route_planner.use_ceiling);

  GetEnum(szProfileTurningReach,
          settings_computer.route_planner.reach_calc_mode);

  GetEnum(szProfileReachPolarMode,
          settings_computer.route_planner.reach_polar_mode);

  if (Get(szProfileRiskGamma, Temp))
    settings_computer.risk_gamma = fixed(Temp) / 10;

  if (Get(szProfileWindArrowStyle, Temp))
    settings_map.WindArrowStyle = Temp;

  Get(szProfileDisableAutoLogger,
      settings_computer.DisableAutoLogger);

  GetEnum(szProfileAircraftSymbol, Appearance.AircraftSymbol);
}
示例#3
0
void
Profile::Load(MapSettings &settings)
{
  Get(szProfileCircleZoom, settings.circle_zoom_enabled);
  Get(szProfileMaxAutoZoomDistance, settings.max_auto_zoom_distance);
  Get(szProfileDrawTopography, settings.topography_enabled);

  LoadTerrainRendererSettings(settings.terrain);

  GetEnum(szProfileAircraftSymbol, settings.aircraft_symbol);

  Get(szProfileTrailDrift, settings.trail_drift_enabled);
  Get(szProfileDetourCostMarker, settings.detour_cost_markers_enabled);
  GetEnum(szProfileDisplayTrackBearing, settings.display_track_bearing);
  Get(szProfileAutoZoom, settings.auto_zoom_enabled);
  Get(szProfileSnailWidthScale, settings.snail_scaling_enabled);

  GetEnum(szProfileSnailType, settings.snail_type);

  unsigned Temp;
  if (Get(szProfileWindArrowStyle, Temp))
    settings.wind_arrow_style = Temp;

  settings.waypoint.LoadFromProfile();

  GetEnum(szProfileSnailTrail, settings.trail_length);

  LoadAirspaceConfig();

  Get(szProfileGliderScreenPosition, settings.glider_screen_position);

  bool orientation_found = false;

  Temp = NORTHUP;
  if (Get(szProfileOrientationCircling, Temp))
    orientation_found = true;

  switch (Temp) {
  case TRACKUP:
    settings.circling_orientation = TRACKUP;
    break;
  case NORTHUP:
    settings.circling_orientation = NORTHUP;
    break;
  case TARGETUP:
    settings.circling_orientation = TARGETUP;
    break;
  }

  Temp = NORTHUP;
  if (Get(szProfileOrientationCruise, Temp))
    orientation_found = true;

  switch (Temp) {
  case TRACKUP:
    settings.cruise_orientation = TRACKUP;
    break;
  case NORTHUP:
    settings.cruise_orientation = NORTHUP;
    break;
  case TARGETUP:
    settings.cruise_orientation = TARGETUP;
    break;
  }

  if (!orientation_found) {
    Temp = 1;
    Get(szProfileDisplayUpValue, Temp);
    switch (Temp) {
    case 0:
      settings.cruise_orientation = TRACKUP;
      settings.circling_orientation = TRACKUP;
      break;
    case 1:
      settings.cruise_orientation = NORTHUP;
      settings.circling_orientation = NORTHUP;
      break;
    case 2:
      settings.cruise_orientation = TRACKUP;
      settings.circling_orientation = NORTHUP;
      break;
    case 3:
      settings.cruise_orientation = TRACKUP;
      settings.circling_orientation = TARGETUP;
      break;
    case 4:
      settings.cruise_orientation = NORTHUP;
      settings.circling_orientation = TRACKUP;
      break;
    }
  }

  GetEnum(szProfileMapShiftBias, settings.map_shift_bias);
  Get(szProfileEnableFLARMMap, settings.show_flarm_on_map);

  Get(szProfileEnableThermalProfile, settings.show_thermal_profile);
}