mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-08-20 08:15:46 -05:00
Add ResolveVariables()
Settings will be set to fixed values based on the values of the variables used.
This commit is contained in:
@@ -165,4 +165,9 @@ void Duration::SetUnit(Unit u)
|
||||
_value = _value * (prevMultiplier / newMultiplier);
|
||||
}
|
||||
|
||||
void Duration::ResolveVariables()
|
||||
{
|
||||
_value.ResolveVariables();
|
||||
}
|
||||
|
||||
} // namespace advss
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -22,6 +22,7 @@ public:
|
||||
Type GetType() const { return _type; }
|
||||
bool IsFixedType() const { return _type == Type::FIXED_VALUE; }
|
||||
std::weak_ptr<Variable> GetVariable() const { return _variable; }
|
||||
void ResolveVariables();
|
||||
|
||||
private:
|
||||
Type _type = Type::FIXED_VALUE;
|
||||
|
||||
@@ -93,3 +93,9 @@ template<typename T> NumberVariable<T>::operator T() const
|
||||
{
|
||||
return GetValue();
|
||||
}
|
||||
|
||||
template<typename T> void NumberVariable<T>::ResolveVariables()
|
||||
{
|
||||
_value = GetValue();
|
||||
_type = Type::FIXED_VALUE;
|
||||
}
|
||||
|
||||
@@ -50,6 +50,12 @@ void StringVariable::Save(obs_data_t *obj, const char *name) const
|
||||
obs_data_set_string(obj, name, _value.c_str());
|
||||
}
|
||||
|
||||
void StringVariable::ResolveVariables()
|
||||
{
|
||||
Resolve();
|
||||
_value = _resolvedValue;
|
||||
}
|
||||
|
||||
const char *StringVariable::c_str()
|
||||
{
|
||||
Resolve();
|
||||
|
||||
@@ -27,6 +27,8 @@ public:
|
||||
EXPORT void Load(obs_data_t *obj, const char *name);
|
||||
EXPORT void Save(obs_data_t *obj, const char *name) const;
|
||||
|
||||
EXPORT void ResolveVariables();
|
||||
|
||||
private:
|
||||
void Resolve() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user