11 #include "settings/ISubSettings.h" 12 #include "settings/lib/ISettingCallback.h" 13 #include "threads/CriticalSection.h" 14 #include "utils/Observer.h" 15 #include "windowing/Resolution.h" 33 bool Save(TiXmlNode *settings)
const override;
34 void Clear()
override;
36 void OnSettingAction(
const std::shared_ptr<const CSetting>& setting)
override;
39 const char* oldSettingId,
40 const TiXmlNode* oldSettingNode)
override;
41 void OnSettingChanged(
const std::shared_ptr<const CSetting>& setting)
override;
54 void SetCurrentResolution(RESOLUTION resolution,
bool save =
false);
69 size_t ResolutionInfoSize()
const {
return m_resolutions.size(); }
72 const RESOLUTION_INFO& GetCurrentResolutionInfo()
const {
return GetResolutionInfo(m_currentResolution); }
73 RESOLUTION_INFO& GetCurrentResolutionInfo() {
return GetResolutionInfo(m_currentResolution); }
74 RESOLUTION GetResFromString(
const std::string &strResolution) {
return GetResolutionFromString(strResolution); }
75 std::string GetStringFromRes(
const RESOLUTION resolution,
float refreshrate = 0.0f) {
return GetStringFromResolution(resolution, refreshrate); }
77 void ApplyCalibrations();
79 void ClearCalibrations();
80 void ClearCustomResolutions();
82 float GetZoomAmount()
const {
return m_zoomAmount; }
83 void SetZoomAmount(
float zoomAmount) { m_zoomAmount = zoomAmount; }
84 float GetPixelRatio()
const {
return m_pixelRatio; }
85 void SetPixelRatio(
float pixelRatio) { m_pixelRatio = pixelRatio; }
86 float GetVerticalShift()
const {
return m_verticalShift; }
87 void SetVerticalShift(
float verticalShift) { m_verticalShift = verticalShift; }
88 bool IsNonLinearStretched()
const {
return m_nonLinearStretched; }
89 void SetNonLinearStretched(
bool nonLinearStretch) { m_nonLinearStretched = nonLinearStretch; }
90 void SetMonitor(
const std::string& monitor);
92 static void SettingOptionsModesFiller(
const std::shared_ptr<const CSetting>& setting,
93 std::vector<StringSettingOption>& list,
96 static void SettingOptionsRefreshChangeDelaysFiller(
97 const std::shared_ptr<const CSetting>& setting,
98 std::vector<IntegerSettingOption>& list,
101 static void SettingOptionsRefreshRatesFiller(
const std::shared_ptr<const CSetting>& setting,
102 std::vector<StringSettingOption>& list,
103 std::string& current,
105 static void SettingOptionsResolutionsFiller(
const std::shared_ptr<const CSetting>& setting,
106 std::vector<IntegerSettingOption>& list,
109 static void SettingOptionsDispModeFiller(
const std::shared_ptr<const CSetting>& setting,
110 std::vector<IntegerSettingOption>& list,
113 static void SettingOptionsStereoscopicModesFiller(
const std::shared_ptr<const CSetting>& setting,
114 std::vector<IntegerSettingOption>& list,
117 static void SettingOptionsPreferredStereoscopicViewModesFiller(
118 const std::shared_ptr<const CSetting>& setting,
119 std::vector<IntegerSettingOption>& list,
122 static void SettingOptionsMonitorsFiller(
const std::shared_ptr<const CSetting>& setting,
123 std::vector<StringSettingOption>& list,
124 std::string& current,
126 static void SettingOptionsCmsModesFiller(
const std::shared_ptr<const CSetting>& setting,
127 std::vector<IntegerSettingOption>& list,
130 static void SettingOptionsCmsWhitepointsFiller(
const std::shared_ptr<const CSetting>& setting,
131 std::vector<IntegerSettingOption>& list,
134 static void SettingOptionsCmsPrimariesFiller(
const std::shared_ptr<const CSetting>& setting,
135 std::vector<IntegerSettingOption>& list,
138 static void SettingOptionsCmsGammaModesFiller(
const std::shared_ptr<const CSetting>& setting,
139 std::vector<IntegerSettingOption>& list,
150 DisplayMode GetCurrentDisplayMode()
const;
152 static RESOLUTION GetResolutionFromString(
const std::string &strResolution);
153 static std::string GetStringFromResolution(RESOLUTION resolution,
float refreshrate = 0.0f);
154 static RESOLUTION GetResolutionForScreen();
156 static RESOLUTION FindBestMatchingResolution(
const std::map<RESOLUTION, RESOLUTION_INFO> &resolutionInfos,
int width,
int height,
float refreshrate,
unsigned int flags);
160 RESOLUTION m_currentResolution;
162 typedef std::vector<RESOLUTION_INFO> ResolutionInfos;
163 ResolutionInfos m_resolutions;
164 ResolutionInfos m_calibrations;
168 float m_verticalShift;
169 bool m_nonLinearStretched;
171 bool m_resolutionChangeAborted;
172 mutable CCriticalSection m_critical;
Definition: DisplaySettings.h:26
bool OnSettingChanging(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting is being changed.
Definition: DisplaySettings.cpp:250
bool Load(const TiXmlNode *settings) override
Load settings from the given XML node.
Definition: DisplaySettings.cpp:100
Definition: ISettingCallback.h:16
bool Save(TiXmlNode *settings) const override
Save settings to the given XML node.
Definition: DisplaySettings.cpp:164
RESOLUTION GetCurrentResolution() const
Returns the currently active resolution.
Definition: DisplaySettings.h:53
void UpdateCalibrations()
Definition: DisplaySettings.cpp:574
void OnSettingChanged(const std::shared_ptr< const CSetting > &setting) override
The value of the given setting has changed.
Definition: DisplaySettings.cpp:401
RESOLUTION GetDisplayResolution() const
Returns the best-matching resolution of the videoscreen.screenmode setting value. ...
Definition: DisplaySettings.cpp:450
Definition: SettingDefinitions.h:85
Definition: SettingDefinitions.h:66
Provide info of a resolution.
Definition: Resolution.h:66
Definition: settings.py:1
void OnSettingAction(const std::shared_ptr< const CSetting > &setting) override
The given setting has been activated.
Definition: DisplaySettings.cpp:222
bool OnSettingUpdate(const std::shared_ptr< CSetting > &setting, const char *oldSettingId, const TiXmlNode *oldSettingNode) override
The given setting needs to be updated.
Definition: DisplaySettings.cpp:357
Definition: Observer.h:44
void Clear() override
Clear any loaded setting values.
Definition: DisplaySettings.cpp:209
Interface defining methods to load additional setting values from an XML file being loaded by the set...
Definition: ISubSettings.h:18