mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-22 01:44:49 -05:00
Fix macro hotkeys not working
This commit is contained in:
parent
c40a3af8ca
commit
00fec4b573
|
|
@ -422,7 +422,7 @@ void SwitcherData::Start()
|
|||
void ResetMacroCounters()
|
||||
{
|
||||
for (auto &m : switcher->macros) {
|
||||
m.ResetCount();
|
||||
m->ResetCount();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ struct SwitcherData {
|
|||
Duration cooldown;
|
||||
std::chrono::high_resolution_clock::time_point lastMatchTime;
|
||||
|
||||
std::deque<Macro> macros;
|
||||
std::deque<std::shared_ptr<Macro>> macros;
|
||||
std::condition_variable macroWaitCv;
|
||||
std::atomic_bool abortMacroWait = {false};
|
||||
bool macroSceneSwitched = false;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ MacroSelection::MacroSelection(QWidget *parent) : QComboBox(parent)
|
|||
firstItem->setEnabled(false);
|
||||
|
||||
for (auto &m : switcher->macros) {
|
||||
addItem(QString::fromStdString(m.Name()));
|
||||
addItem(QString::fromStdString(m->Name()));
|
||||
}
|
||||
|
||||
QWidget::connect(parent, SIGNAL(MacroAdded(const QString &)), this,
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ bool AdvSceneSwitcher::addNewMacro(std::string &name)
|
|||
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(switcher->m);
|
||||
switcher->macros.emplace_back(name);
|
||||
switcher->macros.emplace_back(std::make_shared<Macro>(name));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
@ -84,7 +84,7 @@ void AdvSceneSwitcher::on_macroRemove_clicked()
|
|||
switcher->abortMacroWait = true;
|
||||
switcher->macroWaitCv.notify_one();
|
||||
int idx = ui->macros->currentRow();
|
||||
QString::fromStdString(switcher->macros[idx].Name());
|
||||
QString::fromStdString(switcher->macros[idx]->Name());
|
||||
switcher->macros.erase(switcher->macros.begin() + idx);
|
||||
}
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ void AdvSceneSwitcher::on_macroUp_clicked()
|
|||
switcher->macros.begin() + index - 1);
|
||||
|
||||
for (auto &m : switcher->macros) {
|
||||
m.ResolveMacroRef();
|
||||
m->ResolveMacroRef();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -125,7 +125,7 @@ void AdvSceneSwitcher::on_macroDown_clicked()
|
|||
switcher->macros.begin() + index + 1);
|
||||
|
||||
for (auto &m : switcher->macros) {
|
||||
m.ResolveMacroRef();
|
||||
m->ResolveMacroRef();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -312,12 +312,12 @@ void AdvSceneSwitcher::on_macros_itemChanged(QListWidgetItem *item)
|
|||
void AdvSceneSwitcher::setupMacroTab()
|
||||
{
|
||||
for (auto &m : switcher->macros) {
|
||||
QString text = QString::fromStdString(m.Name());
|
||||
QString text = QString::fromStdString(m->Name());
|
||||
|
||||
QListWidgetItem *item = new QListWidgetItem(text, ui->macros);
|
||||
item->setData(Qt::UserRole, text);
|
||||
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
|
||||
if (m.Paused()) {
|
||||
if (m->Paused()) {
|
||||
item->setCheckState(Qt::Unchecked);
|
||||
} else {
|
||||
item->setCheckState(Qt::Checked);
|
||||
|
|
@ -390,8 +390,8 @@ void AdvSceneSwitcher::CopyMacro()
|
|||
return;
|
||||
}
|
||||
|
||||
switcher->macros.back().Load(data);
|
||||
switcher->macros.back().SetName(name);
|
||||
switcher->macros.back()->Load(data);
|
||||
switcher->macros.back()->SetName(name);
|
||||
obs_data_release(data);
|
||||
|
||||
QString text = QString::fromStdString(name);
|
||||
|
|
|
|||
|
|
@ -458,7 +458,7 @@ void SwitcherData::saveMacros(obs_data_t *obj)
|
|||
for (auto &m : macros) {
|
||||
obs_data_t *array_obj = obs_data_create();
|
||||
|
||||
m.Save(array_obj);
|
||||
m->Save(array_obj);
|
||||
obs_data_array_push_back(macroArray, array_obj);
|
||||
|
||||
obs_data_release(array_obj);
|
||||
|
|
@ -476,14 +476,14 @@ void SwitcherData::loadMacros(obs_data_t *obj)
|
|||
|
||||
for (size_t i = 0; i < count; i++) {
|
||||
obs_data_t *array_obj = obs_data_array_item(macroArray, i);
|
||||
macros.emplace_back();
|
||||
macros.back().Load(array_obj);
|
||||
macros.emplace_back(std::make_shared<Macro>());
|
||||
macros.back()->Load(array_obj);
|
||||
obs_data_release(array_obj);
|
||||
}
|
||||
obs_data_array_release(macroArray);
|
||||
|
||||
for (auto &m : macros) {
|
||||
m.ResolveMacroRef();
|
||||
m->ResolveMacroRef();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -491,11 +491,11 @@ bool SwitcherData::checkMacros()
|
|||
{
|
||||
bool ret = false;
|
||||
for (auto &m : macros) {
|
||||
if (m.CeckMatch()) {
|
||||
if (m->CeckMatch()) {
|
||||
ret = true;
|
||||
// This has to be performed here for now as actions are
|
||||
// not performed immediately after checking conditions.
|
||||
if (m.SwitchesScene()) {
|
||||
if (m->SwitchesScene()) {
|
||||
switcher->macroSceneSwitched = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -509,11 +509,11 @@ bool SwitcherData::runMacros()
|
|||
// events are available - see:
|
||||
// https://github.com/obsproject/obs-studio/commit/feda1aaa283e8a99f6ba1159cfe6b9c1f2934a61
|
||||
for (auto m : macros) {
|
||||
if (m.Matched()) {
|
||||
vblog(LOG_INFO, "running macro: %s", m.Name().c_str());
|
||||
if (!m.PerformAction()) {
|
||||
if (m->Matched()) {
|
||||
vblog(LOG_INFO, "running macro: %s", m->Name().c_str());
|
||||
if (!m->PerformAction()) {
|
||||
blog(LOG_WARNING, "abort macro: %s",
|
||||
m.Name().c_str());
|
||||
m->Name().c_str());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -524,8 +524,8 @@ bool SwitcherData::runMacros()
|
|||
Macro *GetMacroByName(const char *name)
|
||||
{
|
||||
for (auto &m : switcher->macros) {
|
||||
if (m.Name() == name) {
|
||||
return &m;
|
||||
if (m->Name() == name) {
|
||||
return m.get();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user