Rename MacroActionPause and add action to reset macro counter

This commit is contained in:
WarmUpTill 2021-05-24 13:11:06 +02:00 committed by WarmUpTill
parent 89849a0792
commit ec6cffcd6a
3 changed files with 53 additions and 40 deletions

View File

@ -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

View File

@ -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<MacroAction> Create()
{
return std::make_shared<MacroActionPause>();
return std::make_shared<MacroActionMacro>();
}
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<MacroActionPause> entryData = nullptr);
std::shared_ptr<MacroActionMacro> entryData = nullptr);
void UpdateEntryData();
static QWidget *Create(QWidget *parent,
std::shared_ptr<MacroAction> action)
{
return new MacroActionPauseEdit(
return new MacroActionMacroEdit(
parent,
std::dynamic_pointer_cast<MacroActionPause>(action));
std::dynamic_pointer_cast<MacroActionMacro>(action));
}
private slots:
@ -51,7 +52,7 @@ private slots:
protected:
MacroSelection *_macros;
QComboBox *_actions;
std::shared_ptr<MacroActionPause> _entryData;
std::shared_ptr<MacroActionMacro> _entryData;
private:
QHBoxLayout *_mainLayout;

View File

@ -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<PauseAction, std::string> actionTypes = {
{PauseAction::PAUSE, "AdvSceneSwitcher.action.pause.type.pause"},
{PauseAction::UNPAUSE, "AdvSceneSwitcher.action.pause.type.unpause"},
const static std::map<PerformMacroAction, std::string> 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<PauseAction>(obs_data_get_int(obj, "action"));
_action = static_cast<PerformMacroAction>(
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<MacroActionPause> entryData)
MacroActionMacroEdit::MacroActionMacroEdit(
QWidget *parent, std::shared_ptr<MacroActionMacro> 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<std::mutex> lock(switcher->m);
_entryData->_action = static_cast<PauseAction>(value);
_entryData->_action = static_cast<PerformMacroAction>(value);
}
void MacroActionPauseEdit::MacroRemove(const QString &name)
void MacroActionMacroEdit::MacroRemove(const QString &name)
{
UNUSED_PARAMETER(name);
if (_entryData) {