void Profile::Load(MapSettings &settings) { Get(ProfileKeys::CircleZoom, settings.circle_zoom_enabled); Get(ProfileKeys::MaxAutoZoomDistance, settings.max_auto_zoom_distance); Get(ProfileKeys::DrawTopography, settings.topography_enabled); LoadTerrainRendererSettings(settings.terrain); GetEnum(ProfileKeys::AircraftSymbol, settings.aircraft_symbol); Get(ProfileKeys::DetourCostMarker, settings.detour_cost_markers_enabled); GetEnum(ProfileKeys::DisplayTrackBearing, settings.display_ground_track); Get(ProfileKeys::AutoZoom, settings.auto_zoom_enabled); GetEnum(ProfileKeys::WindArrowStyle, settings.wind_arrow_style); settings.waypoint.LoadFromProfile(); Load(settings.airspace); Get(ProfileKeys::GliderScreenPosition, settings.glider_screen_position); bool orientation_found = false; unsigned Temp = (unsigned)DisplayOrientation::NORTH_UP; if (Get(ProfileKeys::OrientationCircling, Temp)) orientation_found = true; if (IsValidMapOrientation(Temp)) settings.circling_orientation = (DisplayOrientation)Temp; Temp = (unsigned)DisplayOrientation::NORTH_UP; if (Get(ProfileKeys::OrientationCruise, Temp)) orientation_found = true; if (IsValidMapOrientation(Temp)) settings.cruise_orientation = (DisplayOrientation)Temp; if (!orientation_found) { Temp = 1; Get(ProfileKeys::DisplayUpValue, Temp); switch (Temp) { case 0: settings.cruise_orientation = DisplayOrientation::TRACK_UP; settings.circling_orientation = DisplayOrientation::TRACK_UP; break; case 1: settings.cruise_orientation = DisplayOrientation::NORTH_UP; settings.circling_orientation = DisplayOrientation::NORTH_UP; break; case 2: settings.cruise_orientation = DisplayOrientation::TRACK_UP; settings.circling_orientation = DisplayOrientation::NORTH_UP; break; case 3: settings.cruise_orientation = DisplayOrientation::TRACK_UP; settings.circling_orientation = DisplayOrientation::TARGET_UP; break; case 4: settings.cruise_orientation = DisplayOrientation::NORTH_UP; settings.circling_orientation = DisplayOrientation::TRACK_UP; break; } } fixed tmp; if (Profile::Get(ProfileKeys::ClimbMapScale, tmp)) settings.circling_scale = Clamp(tmp / 10000, fixed(0.0003), fixed(10)); if (Profile::Get(ProfileKeys::CruiseMapScale, tmp)) settings.cruise_scale = Clamp(tmp / 10000, fixed(0.0003), fixed(10)); GetEnum(ProfileKeys::MapShiftBias, settings.map_shift_bias); Get(ProfileKeys::EnableFLARMMap, settings.show_flarm_on_map); Get(ProfileKeys::EnableThermalProfile, settings.show_thermal_profile); Get(ProfileKeys::EnableFinalGlideBarMC0, settings.final_glide_bar_mc0_enabled); Get(ProfileKeys::ShowFAITriangleAreas, settings.show_fai_triangle_areas); Load(settings.trail); Load(settings.item_list); }
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); }
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); }