Add ResolveVariables()

Settings will be set to fixed values based on the values of the
variables used.
This commit is contained in:
WarmUpTill
2024-03-01 23:32:50 +01:00
committed by WarmUpTill
parent 2928775f5b
commit f8dadd38b4
20 changed files with 122 additions and 1 deletions

View File

@@ -165,4 +165,9 @@ void Duration::SetUnit(Unit u)
_value = _value * (prevMultiplier / newMultiplier);
}
void Duration::ResolveVariables()
{
_value.ResolveVariables();
}
} // namespace advss

View File

@@ -34,8 +34,10 @@ public:
// Only use this function if you intend to convert old settings formats
EXPORT void SetUnit(Unit u);
EXPORT void ResolveVariables();
private:
NumberVariable<double> _value = 0.;
DoubleVariable _value = 0.;
Unit _unit = Unit::SECONDS;
std::chrono::high_resolution_clock::time_point _startTime;

View File

@@ -181,6 +181,12 @@ std::string SceneSelection::ToString(bool resolve) const
return "";
}
void SceneSelection::ResolveVariables()
{
_scene = GetScene();
_type = Type::SCENE;
}
SceneSelection SceneSelectionWidget::CurrentSelection()
{
SceneSelection s;

View File

@@ -26,6 +26,7 @@ public:
EXPORT Type GetType() const { return _type; }
EXPORT OBSWeakSource GetScene(bool advance = true) const;
EXPORT std::string ToString(bool resolve = false) const;
EXPORT void ResolveVariables();
private:
OBSWeakSource _scene;

View File

@@ -88,6 +88,11 @@ void SourceSelection::SetSource(OBSWeakSource source)
_source = source;
}
void SourceSelection::ResolveVariables()
{
SetSource(GetSource());
}
std::string SourceSelection::ToString(bool resolve) const
{
switch (_type) {

View File

@@ -19,6 +19,7 @@ public:
EXPORT Type GetType() const { return _type; }
EXPORT OBSWeakSource GetSource() const;
EXPORT void SetSource(OBSWeakSource);
EXPORT void ResolveVariables();
EXPORT std::string ToString(bool resolve = false) const;
EXPORT bool operator==(const SourceSelection &) const;