diff --git a/data/locale/en-US.ini b/data/locale/en-US.ini index 6256fc22..35820bf7 100644 --- a/data/locale/en-US.ini +++ b/data/locale/en-US.ini @@ -187,10 +187,11 @@ AdvSceneSwitcher.action.media.type.restart="Restart" AdvSceneSwitcher.action.media.type.next="Next" AdvSceneSwitcher.action.media.type.previous="Previous" AdvSceneSwitcher.action.media.entry="{{actions}} {{mediaSources}}" -AdvSceneSwitcher.action.pause="Pause" -AdvSceneSwitcher.action.pause.type.pause="Pause" -AdvSceneSwitcher.action.pause.type.unpause="Unpause" -AdvSceneSwitcher.action.pause.entry="{{actions}} {{macros}}" +AdvSceneSwitcher.action.macro="Macro" +AdvSceneSwitcher.action.macro.type.pause="Pause" +AdvSceneSwitcher.action.macro.type.unpause="Unpause" +AdvSceneSwitcher.action.macro.type.resetCounter="Reset counter" +AdvSceneSwitcher.action.macro.entry="{{actions}} {{macros}}" ; Transition Tab diff --git a/src/headers/macro-action-macro.hpp b/src/headers/macro-action-macro.hpp index be670f50..75ae149b 100644 --- a/src/headers/macro-action-macro.hpp +++ b/src/headers/macro-action-macro.hpp @@ -3,12 +3,13 @@ #include "macro-action-edit.hpp" #include "macro-selection.hpp" -enum class PauseAction { +enum class PerformMacroAction { PAUSE, UNPAUSE, + RESET_COUNTER, }; -class MacroActionPause : public MacroRefAction { +class MacroActionMacro : public MacroRefAction { public: bool PerformAction(); void LogAction(); @@ -17,30 +18,30 @@ public: std::string GetId() { return id; }; static std::shared_ptr Create() { - return std::make_shared(); + return std::make_shared(); } - PauseAction _action = PauseAction::PAUSE; + PerformMacroAction _action = PerformMacroAction::PAUSE; private: static bool _registered; static const std::string id; }; -class MacroActionPauseEdit : public QWidget { +class MacroActionMacroEdit : public QWidget { Q_OBJECT public: - MacroActionPauseEdit( + MacroActionMacroEdit( QWidget *parent, - std::shared_ptr entryData = nullptr); + std::shared_ptr entryData = nullptr); void UpdateEntryData(); static QWidget *Create(QWidget *parent, std::shared_ptr action) { - return new MacroActionPauseEdit( + return new MacroActionMacroEdit( parent, - std::dynamic_pointer_cast(action)); + std::dynamic_pointer_cast(action)); } private slots: @@ -51,7 +52,7 @@ private slots: protected: MacroSelection *_macros; QComboBox *_actions; - std::shared_ptr _entryData; + std::shared_ptr _entryData; private: QHBoxLayout *_mainLayout; diff --git a/src/macro-action-macro.cpp b/src/macro-action-macro.cpp index 28c30a34..a5bea1b2 100644 --- a/src/macro-action-macro.cpp +++ b/src/macro-action-macro.cpp @@ -1,56 +1,66 @@ -#include "headers/macro-action-pause.hpp" +#include "headers/macro-action-macro.hpp" #include "headers/advanced-scene-switcher.hpp" #include "headers/utility.hpp" -const std::string MacroActionPause::id = "pause"; +const std::string MacroActionMacro::id = "macro"; -bool MacroActionPause::_registered = MacroActionFactory::Register( - MacroActionPause::id, - {MacroActionPause::Create, MacroActionPauseEdit::Create, - "AdvSceneSwitcher.action.pause"}); +bool MacroActionMacro::_registered = MacroActionFactory::Register( + MacroActionMacro::id, + {MacroActionMacro::Create, MacroActionMacroEdit::Create, + "AdvSceneSwitcher.action.macro"}); -const static std::map actionTypes = { - {PauseAction::PAUSE, "AdvSceneSwitcher.action.pause.type.pause"}, - {PauseAction::UNPAUSE, "AdvSceneSwitcher.action.pause.type.unpause"}, +const static std::map actionTypes = { + {PerformMacroAction::PAUSE, "AdvSceneSwitcher.action.macro.type.pause"}, + {PerformMacroAction::UNPAUSE, + "AdvSceneSwitcher.action.macro.type.unpause"}, + {PerformMacroAction::RESET_COUNTER, + "AdvSceneSwitcher.action.macro.type.resetCounter"}, }; -bool MacroActionPause::PerformAction() +bool MacroActionMacro::PerformAction() { if (!_macro.get()) { return true; } switch (_action) { - case PauseAction::PAUSE: + case PerformMacroAction::PAUSE: _macro->SetPaused(); break; - case PauseAction::UNPAUSE: + case PerformMacroAction::UNPAUSE: _macro->SetPaused(false); break; + case PerformMacroAction::RESET_COUNTER: + _macro->ResetCount(); + break; default: break; } return true; } -void MacroActionPause::LogAction() +void MacroActionMacro::LogAction() { if (!_macro.get()) { return; } switch (_action) { - case PauseAction::PAUSE: + case PerformMacroAction::PAUSE: vblog(LOG_INFO, "paused \"%s\"", _macro->Name().c_str()); break; - case PauseAction::UNPAUSE: + case PerformMacroAction::UNPAUSE: vblog(LOG_INFO, "unpaused \"%s\"", _macro->Name().c_str()); break; + case PerformMacroAction::RESET_COUNTER: + vblog(LOG_INFO, "reset counter for \"%s\"", + _macro->Name().c_str()); + break; default: break; } } -bool MacroActionPause::Save(obs_data_t *obj) +bool MacroActionMacro::Save(obs_data_t *obj) { MacroAction::Save(obj); _macro.Save(obj); @@ -58,11 +68,12 @@ bool MacroActionPause::Save(obs_data_t *obj) return true; } -bool MacroActionPause::Load(obs_data_t *obj) +bool MacroActionMacro::Load(obs_data_t *obj) { MacroAction::Load(obj); _macro.Load(obj); - _action = static_cast(obs_data_get_int(obj, "action")); + _action = static_cast( + obs_data_get_int(obj, "action")); return true; } @@ -73,8 +84,8 @@ static inline void populateActionSelection(QComboBox *list) } } -MacroActionPauseEdit::MacroActionPauseEdit( - QWidget *parent, std::shared_ptr entryData) +MacroActionMacroEdit::MacroActionMacroEdit( + QWidget *parent, std::shared_ptr entryData) : QWidget(parent) { _macros = new MacroSelection(parent); @@ -94,7 +105,7 @@ MacroActionPauseEdit::MacroActionPauseEdit( {"{{actions}}", _actions}, {"{{macros}}", _macros}, }; - placeWidgets(obs_module_text("AdvSceneSwitcher.action.pause.entry"), + placeWidgets(obs_module_text("AdvSceneSwitcher.action.macro.entry"), mainLayout, widgetPlaceholders); setLayout(mainLayout); @@ -103,7 +114,7 @@ MacroActionPauseEdit::MacroActionPauseEdit( _loading = false; } -void MacroActionPauseEdit::UpdateEntryData() +void MacroActionMacroEdit::UpdateEntryData() { if (!_entryData) { return; @@ -112,7 +123,7 @@ void MacroActionPauseEdit::UpdateEntryData() _macros->SetCurrentMacro(_entryData->_macro.get()); } -void MacroActionPauseEdit::MacroChanged(const QString &text) +void MacroActionMacroEdit::MacroChanged(const QString &text) { if (_loading || !_entryData) { return; @@ -122,17 +133,17 @@ void MacroActionPauseEdit::MacroChanged(const QString &text) _entryData->_macro.UpdateRef(text); } -void MacroActionPauseEdit::ActionChanged(int value) +void MacroActionMacroEdit::ActionChanged(int value) { if (_loading || !_entryData) { return; } std::lock_guard lock(switcher->m); - _entryData->_action = static_cast(value); + _entryData->_action = static_cast(value); } -void MacroActionPauseEdit::MacroRemove(const QString &name) +void MacroActionMacroEdit::MacroRemove(const QString &name) { UNUSED_PARAMETER(name); if (_entryData) {