diff --git a/plugins/base/macro-condition-virtual-cam.cpp b/plugins/base/macro-condition-virtual-cam.cpp index 74a7932a..45eea767 100644 --- a/plugins/base/macro-condition-virtual-cam.cpp +++ b/plugins/base/macro-condition-virtual-cam.cpp @@ -1,6 +1,7 @@ #include "macro-condition-virtual-cam.hpp" #include "layout-helpers.hpp" +#include #include namespace advss { @@ -12,29 +13,22 @@ bool MacroConditionVCam::_registered = MacroConditionFactory::Register( {MacroConditionVCam::Create, MacroConditionVCamEdit::Create, "AdvSceneSwitcher.condition.virtualCamera"}); -const static std::map VCamStates = { - {VCamState::STOP, - "AdvSceneSwitcher.condition.virtualCamera.state.stop"}, - {VCamState::START, - "AdvSceneSwitcher.condition.virtualCamera.state.start"}, -}; - bool MacroConditionVCam::CheckCondition() { - bool stateMatch = false; + bool match = false; #if LIBOBS_API_VER >= MAKE_SEMANTIC_VERSION(27, 0, 0) switch (_state) { - case VCamState::STOP: - stateMatch = !obs_frontend_virtualcam_active(); + case Condition::STOP: + match = !obs_frontend_virtualcam_active(); break; - case VCamState::START: - stateMatch = obs_frontend_virtualcam_active(); + case Condition::START: + match = obs_frontend_virtualcam_active(); break; default: break; } #endif - return stateMatch; + return match; } bool MacroConditionVCam::Save(obs_data_t *obj) const @@ -47,38 +41,39 @@ bool MacroConditionVCam::Save(obs_data_t *obj) const bool MacroConditionVCam::Load(obs_data_t *obj) { MacroCondition::Load(obj); - _state = static_cast(obs_data_get_int(obj, "state")); + _state = static_cast(obs_data_get_int(obj, "state")); return true; } static inline void populateStateSelection(QComboBox *list) { - for (auto entry : VCamStates) { - list->addItem(obs_module_text(entry.second.c_str())); + static const std::map + conditions = { + {MacroConditionVCam::Condition::STOP, + "AdvSceneSwitcher.condition.virtualCamera.state.stop"}, + {MacroConditionVCam::Condition::START, + "AdvSceneSwitcher.condition.virtualCamera.state.start"}, + }; + + for (const auto &[_, name] : conditions) { + list->addItem(obs_module_text(name.c_str())); } } MacroConditionVCamEdit::MacroConditionVCamEdit( QWidget *parent, std::shared_ptr entryData) - : QWidget(parent) + : QWidget(parent), + _states(new QComboBox(this)) { - _states = new QComboBox(); - + populateStateSelection(_states); QWidget::connect(_states, SIGNAL(currentIndexChanged(int)), this, SLOT(StateChanged(int))); - populateStateSelection(_states); - - QHBoxLayout *mainLayout = new QHBoxLayout; - - std::unordered_map widgetPlaceholders = { - {"{{states}}", _states}, - }; - + auto layout = new QHBoxLayout; PlaceWidgets(obs_module_text( "AdvSceneSwitcher.condition.virtualCamera.entry"), - mainLayout, widgetPlaceholders); - setLayout(mainLayout); + layout, {{"{{states}}", _states}}); + setLayout(layout); _entryData = entryData; UpdateEntryData(); @@ -88,7 +83,7 @@ MacroConditionVCamEdit::MacroConditionVCamEdit( void MacroConditionVCamEdit::StateChanged(int value) { GUARD_LOADING_AND_LOCK(); - _entryData->_state = static_cast(value); + _entryData->_state = static_cast(value); } void MacroConditionVCamEdit::UpdateEntryData() diff --git a/plugins/base/macro-condition-virtual-cam.hpp b/plugins/base/macro-condition-virtual-cam.hpp index fa8cb372..1172d833 100644 --- a/plugins/base/macro-condition-virtual-cam.hpp +++ b/plugins/base/macro-condition-virtual-cam.hpp @@ -6,11 +6,6 @@ namespace advss { -enum class VCamState { - STOP, - START, -}; - class MacroConditionVCam : public MacroCondition { public: MacroConditionVCam(Macro *m) : MacroCondition(m) {} @@ -23,7 +18,12 @@ public: return std::make_shared(m); } - VCamState _state = VCamState::STOP; + enum class Condition { + STOP, + START, + }; + + Condition _state = Condition::STOP; private: static bool _registered; @@ -49,11 +49,10 @@ public: private slots: void StateChanged(int value); -protected: - QComboBox *_states; - std::shared_ptr _entryData; - private: + QComboBox *_states; + + std::shared_ptr _entryData; bool _loading = true; };