mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-23 06:33:42 +00:00
committed by
Konstantin Pastbin
parent
c9cbb64f12
commit
76ffc99abd
113
libs/map/power_management/power_management_schemas.cpp
Normal file
113
libs/map/power_management/power_management_schemas.cpp
Normal file
@@ -0,0 +1,113 @@
|
||||
#include "map/power_management/power_management_schemas.hpp"
|
||||
|
||||
#include "base/assert.hpp"
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
using namespace power_management;
|
||||
|
||||
namespace
|
||||
{
|
||||
std::unordered_map<Scheme, FacilitiesState> const kSchemeToState =
|
||||
{
|
||||
{
|
||||
Scheme::Normal,
|
||||
{{
|
||||
/* Buildings3d */ true, /* PerspectiveView */ true, /* TrackRecording */ true,
|
||||
/* TrafficJams */ true, /* GpsTrackingForTraffic */ true, /* OsmEditsUploading */ true,
|
||||
/* UgcUploading */ true, /* BookmarkCloudUploading */ true, /* MapDownloader */ true,
|
||||
}}
|
||||
},
|
||||
{
|
||||
Scheme::EconomyMedium,
|
||||
{{
|
||||
/* Buildings3d */ true, /* PerspectiveView */ false, /* TrackRecording */ true,
|
||||
/* TrafficJams */ true, /* GpsTrackingForTraffic */ true, /* OsmEditsUploading */ true,
|
||||
/* UgcUploading */ true, /* BookmarkCloudUploading */ false, /* MapDownloader */ true,
|
||||
}}
|
||||
},
|
||||
{
|
||||
Scheme::EconomyMaximum,
|
||||
{{
|
||||
/* Buildings3d */ false, /* PerspectiveView */ false, /* TrackRecording */ false,
|
||||
/* TrafficJams */ false, /* GpsTrackingForTraffic */ false, /* OsmEditsUploading */ false,
|
||||
/* UgcUploading */ false, /* BookmarkCloudUploading */ false, /* MapDownloader */ true,
|
||||
}}
|
||||
},
|
||||
};
|
||||
|
||||
std::unordered_map<AutoScheme, FacilitiesState> const kAutoSchemeToState =
|
||||
{
|
||||
{
|
||||
AutoScheme::Normal,
|
||||
{{
|
||||
/* Buildings3d */ true, /* PerspectiveView */ true, /* TrackRecording */ true,
|
||||
/* TrafficJams */ true, /* GpsTrackingForTraffic */ true, /* OsmEditsUploading */ true,
|
||||
/* UgcUploading */ true, /* BookmarkCloudUploading */ true, /* MapDownloader */ true,
|
||||
}}
|
||||
},
|
||||
{
|
||||
AutoScheme::EconomyMedium,
|
||||
{{
|
||||
/* Buildings3d */ true, /* PerspectiveView */ false, /* TrackRecording */ true,
|
||||
/* TrafficJams */ true, /* GpsTrackingForTraffic */ false, /* OsmEditsUploading */ true,
|
||||
/* UgcUploading */ true, /* BookmarkCloudUploading */ false, /* MapDownloader */ false,
|
||||
}}
|
||||
},
|
||||
{
|
||||
AutoScheme::EconomyMaximum,
|
||||
{{
|
||||
/* Buildings3d */ false, /* PerspectiveView */ false, /* TrackRecording */ false,
|
||||
/* TrafficJams */ false, /* GpsTrackingForTraffic */ false, /* OsmEditsUploading */ false,
|
||||
/* UgcUploading */ false, /* BookmarkCloudUploading */ false, /* MapDownloader */ false,
|
||||
}}
|
||||
},
|
||||
};
|
||||
} // namespace
|
||||
|
||||
namespace power_management
|
||||
{
|
||||
FacilitiesState const & GetFacilitiesState(Scheme const scheme)
|
||||
{
|
||||
CHECK_NOT_EQUAL(scheme, Scheme::None, ());
|
||||
CHECK_NOT_EQUAL(scheme, Scheme::Auto, ());
|
||||
|
||||
return kSchemeToState.at(scheme);
|
||||
}
|
||||
|
||||
FacilitiesState const & GetFacilitiesState(AutoScheme const autoScheme)
|
||||
{
|
||||
return kAutoSchemeToState.at(autoScheme);
|
||||
}
|
||||
|
||||
std::string DebugPrint(Facility const facility)
|
||||
{
|
||||
switch (facility)
|
||||
{
|
||||
case Facility::Buildings3d: return "Buildings3d";
|
||||
case Facility::PerspectiveView: return "PerspectiveView";
|
||||
case Facility::TrackRecording: return "TrackRecording";
|
||||
case Facility::TrafficJams: return "TrafficJams";
|
||||
case Facility::GpsTrackingForTraffic: return "GpsTrackingForTraffic";
|
||||
case Facility::OsmEditsUploading: return "OsmEditsUploading";
|
||||
case Facility::UgcUploading: return "UgcUploading";
|
||||
case Facility::BookmarkCloudUploading: return "BookmarkCloudUploading";
|
||||
case Facility::MapDownloader: return "MapDownloader";
|
||||
case Facility::Count: return "Count";
|
||||
}
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
std::string DebugPrint(Scheme const scheme)
|
||||
{
|
||||
switch (scheme)
|
||||
{
|
||||
case Scheme::None: return "None";
|
||||
case Scheme::Normal: return "Normal";
|
||||
case Scheme::EconomyMedium: return "EconomyMedium";
|
||||
case Scheme::EconomyMaximum: return "EconomyMaximum";
|
||||
case Scheme::Auto: return "Auto";
|
||||
}
|
||||
UNREACHABLE();
|
||||
}
|
||||
} // namespace power_management
|
||||
Reference in New Issue
Block a user