mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-22 01:44:49 -05:00
Reduce dependencies to macro internals
This commit is contained in:
parent
43a3ae9726
commit
0317d45ea8
|
|
@ -429,8 +429,8 @@ bool SwitcherData::CheckForMatch(OBSWeakSource &scene,
|
|||
static void ResetMacros()
|
||||
{
|
||||
for (auto &m : GetMacros()) {
|
||||
m->ResetRunCount();
|
||||
m->ResetTimers();
|
||||
ResetMacroRunCount(m.get());
|
||||
ResetMacroConditionTimers(m.get());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
#include "advanced-scene-switcher.hpp"
|
||||
#include "switcher-data.hpp"
|
||||
#include "status-control.hpp"
|
||||
#include "file-selection.hpp"
|
||||
#include "filter-combo-box.hpp"
|
||||
#include "variable.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "status-control.hpp"
|
||||
#include "switcher-data.hpp"
|
||||
#include "utility.hpp"
|
||||
#include "variable.hpp"
|
||||
#include "version.h"
|
||||
|
||||
#include <QFileDialog>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "macro-action-audio.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
#include <cmath>
|
||||
|
|
@ -168,7 +168,8 @@ void MacroActionAudio::FadeVolume() const
|
|||
int step = 0;
|
||||
auto fadeId = GetFadeIdPtr();
|
||||
int expectedFadeId = ++(*fadeId);
|
||||
for (; step < nrSteps && !macro->GetStop() && expectedFadeId == *fadeId;
|
||||
for (; step < nrSteps && !MacroIsStopped(macro) &&
|
||||
expectedFadeId == *fadeId;
|
||||
++step) {
|
||||
curVol = (volIncrease) ? curVol + volStep : curVol - volStep;
|
||||
SetVolume(curVol);
|
||||
|
|
@ -203,8 +204,9 @@ void MacroActionAudio::StartFade() const
|
|||
if (_wait) {
|
||||
FadeVolume();
|
||||
} else {
|
||||
GetMacro()->AddHelperThread(
|
||||
std::thread(&MacroActionAudio::FadeVolume, this));
|
||||
AddMacroHelperThread(GetMacro(),
|
||||
std::thread(&MacroActionAudio::FadeVolume,
|
||||
this));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "macro-action-random.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
#include <cstdlib>
|
||||
|
|
@ -15,7 +15,7 @@ bool MacroActionRandom::_registered = MacroActionFactory::Register(
|
|||
|
||||
static bool validNextMacro(const std::shared_ptr<Macro> ¯o)
|
||||
{
|
||||
return macro && !macro->Paused();
|
||||
return !MacroIsPaused(macro.get());
|
||||
}
|
||||
|
||||
static std::vector<std::shared_ptr<Macro>>
|
||||
|
|
@ -54,12 +54,12 @@ bool MacroActionRandom::PerformAction()
|
|||
}
|
||||
if (macros.size() == 1) {
|
||||
lastRandomMacro = macros[0];
|
||||
return macros[0]->PerformActions(true);
|
||||
return RunMacroActions(macros[0].get());
|
||||
}
|
||||
srand((unsigned int)time(0));
|
||||
size_t idx = std::rand() % (macros.size());
|
||||
lastRandomMacro = macros[idx];
|
||||
return macros[idx]->PerformActions(true);
|
||||
return RunMacroActions(macros[idx].get());
|
||||
}
|
||||
|
||||
void MacroActionRandom::LogAction() const
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
#include "macro-action-scene-switch.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "plugin-state-helpers.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "scene-switch-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
|
|
@ -36,7 +35,7 @@ static void waitForTransitionChange(OBSWeakSource &transition,
|
|||
|
||||
bool stillTransitioning = true;
|
||||
while (stillTransitioning && !MacroWaitShouldAbort() &&
|
||||
!macro->GetStop()) {
|
||||
!MacroIsStopped(macro)) {
|
||||
GetMacroTransitionCV().wait_for(*lock, time);
|
||||
float t = obs_transition_get_time(source);
|
||||
stillTransitioning = t < 1.0f && t > 0.0f;
|
||||
|
|
@ -51,7 +50,7 @@ static void waitForTransitionChangeFixedDuration(
|
|||
auto time = std::chrono::high_resolution_clock::now() +
|
||||
std::chrono::milliseconds(duration);
|
||||
|
||||
while (!MacroWaitShouldAbort() && !macro->GetStop()) {
|
||||
while (!MacroWaitShouldAbort() && !MacroIsStopped(macro)) {
|
||||
if (GetMacroTransitionCV().wait_until(*lock, time) ==
|
||||
std::cv_status::timeout) {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "macro-action-sequence.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
namespace advss {
|
||||
|
|
@ -15,7 +15,7 @@ static int getNextUnpausedMacroIdx(std::vector<MacroRef> ¯os, int startIdx)
|
|||
{
|
||||
for (; (int)macros.size() > startIdx; ++startIdx) {
|
||||
auto macro = macros[startIdx].GetMacro();
|
||||
if (macro && !macro->Paused()) {
|
||||
if (!MacroIsPaused(macro.get())) {
|
||||
return startIdx;
|
||||
}
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ bool MacroActionSequence::PerformAction()
|
|||
return true;
|
||||
}
|
||||
|
||||
return macro->PerformActions(true);
|
||||
return RunMacroActions(macro.get());
|
||||
}
|
||||
|
||||
void MacroActionSequence::LogAction() const
|
||||
|
|
@ -254,11 +254,13 @@ void MacroActionSequenceEdit::UpdateStatusLine()
|
|||
obs_module_text("AdvSceneSwitcher.action.sequence.status.none");
|
||||
if (_entryData) {
|
||||
if (auto macro = _entryData->_lastSequenceMacro.GetMacro()) {
|
||||
lastMacroName = QString::fromStdString(macro->Name());
|
||||
lastMacroName = QString::fromStdString(
|
||||
GetMacroName(macro.get()));
|
||||
}
|
||||
auto next = _entryData->GetNextMacro(false).GetMacro();
|
||||
if (next) {
|
||||
nextMacroName = QString::fromStdString(next->Name());
|
||||
nextMacroName = QString::fromStdString(
|
||||
GetMacroName(next.get()));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include "macro-action-timer.hpp"
|
||||
#include "macro-condition-timer.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
#include <random>
|
||||
|
|
@ -28,12 +28,13 @@ bool MacroActionTimer::PerformAction()
|
|||
if (!macro) {
|
||||
return true;
|
||||
}
|
||||
for (auto c : macro->Conditions()) {
|
||||
if (c->GetId() != "timer") {
|
||||
auto conditions = *GetMacroConditions(macro.get());
|
||||
for (auto condition : conditions) {
|
||||
if (condition->GetId() != id) {
|
||||
continue;
|
||||
}
|
||||
auto timerCondition =
|
||||
dynamic_cast<MacroConditionTimer *>(c.get());
|
||||
dynamic_cast<MacroConditionTimer *>(condition.get());
|
||||
if (!timerCondition) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -68,20 +69,21 @@ void MacroActionTimer::LogAction() const
|
|||
switch (_actionType) {
|
||||
case TimerAction::PAUSE:
|
||||
vblog(LOG_INFO, "paused timers on \"%s\"",
|
||||
macro->Name().c_str());
|
||||
GetMacroName(macro.get()).c_str());
|
||||
break;
|
||||
case TimerAction::CONTINUE:
|
||||
vblog(LOG_INFO, "continued timers on \"%s\"",
|
||||
macro->Name().c_str());
|
||||
GetMacroName(macro.get()).c_str());
|
||||
break;
|
||||
case TimerAction::RESET:
|
||||
vblog(LOG_INFO, "reset timers on \"%s\"",
|
||||
macro->Name().c_str());
|
||||
GetMacroName(macro.get()).c_str());
|
||||
break;
|
||||
case TimerAction::SET_TIME_REMAINING:
|
||||
vblog(LOG_INFO,
|
||||
"set time remaining of timers on \"%s\" to \"%s\"",
|
||||
macro->Name().c_str(), _duration.ToString().c_str());
|
||||
GetMacroName(macro.get()).c_str(),
|
||||
_duration.ToString().c_str());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
#include "macro-action-wait.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "sync-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
|
|
@ -28,7 +27,7 @@ static std::default_random_engine re(rd());
|
|||
static void waitHelper(std::unique_lock<std::mutex> *lock, Macro *macro,
|
||||
std::chrono::high_resolution_clock::time_point &time)
|
||||
{
|
||||
while (!MacroWaitShouldAbort() && !macro->GetStop()) {
|
||||
while (!MacroWaitShouldAbort() && !MacroIsStopped(macro)) {
|
||||
if (GetMacroWaitCV().wait_until(*lock, time) ==
|
||||
std::cv_status::timeout) {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "macro-condition-audio.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
namespace advss {
|
||||
|
|
@ -281,9 +281,9 @@ void MacroConditionAudio::SetVolumeLevel(void *data, const float *,
|
|||
const float peak[MAX_AUDIO_CHANNELS],
|
||||
const float *)
|
||||
{
|
||||
MacroConditionAudio *c = static_cast<MacroConditionAudio *>(data);
|
||||
auto c = static_cast<MacroConditionAudio *>(data);
|
||||
const auto macro = c->GetMacro();
|
||||
if (macro && macro->Paused()) {
|
||||
if (MacroIsPaused(macro)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "macro-condition-date.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
#include <QCalendarWidget>
|
||||
|
|
@ -180,7 +180,7 @@ bool MacroConditionDate::CheckCondition()
|
|||
if (!m) {
|
||||
return false;
|
||||
}
|
||||
auto msSinceLastCheck = m->MsSinceLastCheck();
|
||||
auto msSinceLastCheck = MillisecondsSinceMacroConditionCheck(m);
|
||||
if (_dayOfWeekCheck) {
|
||||
return CheckDayOfWeek(msSinceLastCheck);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "macro-condition-media.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "plugin-state-helpers.hpp"
|
||||
#include "scene-switch-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
|
@ -13,20 +13,21 @@ bool MacroConditionMedia::_registered = MacroConditionFactory::Register(
|
|||
{MacroConditionMedia::Create, MacroConditionMediaEdit::Create,
|
||||
"AdvSceneSwitcher.condition.media"});
|
||||
|
||||
static std::map<MacroConditionMedia::Time, std::string> mediaTimeRestrictions = {
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_NONE,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.none"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_SHORTER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.shorter"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_LONGER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.longer"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_REMAINING_SHORTER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.remainShorter"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_REMAINING_LONGER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.remainLonger"},
|
||||
static const std::map<MacroConditionMedia::Time, std::string>
|
||||
mediaTimeRestrictions = {
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_NONE,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.none"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_SHORTER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.shorter"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_LONGER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.longer"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_REMAINING_SHORTER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.remainShorter"},
|
||||
{MacroConditionMedia::Time::TIME_RESTRICTION_REMAINING_LONGER,
|
||||
"AdvSceneSwitcher.mediaTab.timeRestriction.remainLonger"},
|
||||
};
|
||||
|
||||
static std::map<MacroConditionMedia::State, std::string> mediaStates = {
|
||||
static const std::map<MacroConditionMedia::State, std::string> mediaStates = {
|
||||
{MacroConditionMedia::State::OBS_MEDIA_STATE_NONE,
|
||||
"AdvSceneSwitcher.mediaTab.states.none"},
|
||||
{MacroConditionMedia::State::OBS_MEDIA_STATE_PLAYING,
|
||||
|
|
@ -332,7 +333,7 @@ void MacroConditionMedia::MediaStopped(void *data, calldata_t *)
|
|||
{
|
||||
MacroConditionMedia *media = static_cast<MacroConditionMedia *>(data);
|
||||
const auto macro = media->GetMacro();
|
||||
if (macro && macro->Paused()) {
|
||||
if (MacroIsPaused(macro)) {
|
||||
return;
|
||||
}
|
||||
media->_stopped = true;
|
||||
|
|
@ -342,7 +343,7 @@ void MacroConditionMedia::MediaEnded(void *data, calldata_t *)
|
|||
{
|
||||
MacroConditionMedia *media = static_cast<MacroConditionMedia *>(data);
|
||||
const auto macro = media->GetMacro();
|
||||
if (macro && macro->Paused()) {
|
||||
if (MacroIsPaused(macro)) {
|
||||
return;
|
||||
}
|
||||
media->_ended = true;
|
||||
|
|
@ -352,7 +353,7 @@ void MacroConditionMedia::MediaNext(void *data, calldata_t *)
|
|||
{
|
||||
MacroConditionMedia *media = static_cast<MacroConditionMedia *>(data);
|
||||
const auto macro = media->GetMacro();
|
||||
if (macro && macro->Paused()) {
|
||||
if (MacroIsPaused(macro)) {
|
||||
return;
|
||||
}
|
||||
media->_next = true;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#include "macro-condition-slideshow.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
namespace advss {
|
||||
|
|
@ -121,7 +121,7 @@ void MacroConditionSlideshow::SlideChanged(void *c, calldata_t *data)
|
|||
{
|
||||
auto condition = static_cast<MacroConditionSlideshow *>(c);
|
||||
const auto macro = condition->GetMacro();
|
||||
if (macro && macro->Paused()) {
|
||||
if (MacroIsPaused(macro)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "macro-helpers.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "plugin-state-helpers.hpp"
|
||||
|
||||
namespace advss {
|
||||
|
|
@ -7,6 +8,24 @@ static std::atomic_bool abortMacroWait = {false};
|
|||
static std::atomic_bool macroSceneSwitched = {false};
|
||||
static std::atomic_int shutdownConditionCount = {0};
|
||||
|
||||
std::optional<std::deque<std::shared_ptr<MacroAction>>>
|
||||
GetMacroActions(Macro *macro)
|
||||
{
|
||||
if (!macro) {
|
||||
return {};
|
||||
}
|
||||
return macro->Actions();
|
||||
}
|
||||
|
||||
std::optional<std::deque<std::shared_ptr<MacroCondition>>>
|
||||
GetMacroConditions(Macro *macro)
|
||||
{
|
||||
if (!macro) {
|
||||
return {};
|
||||
}
|
||||
return macro->Conditions();
|
||||
}
|
||||
|
||||
std::condition_variable &GetMacroWaitCV()
|
||||
{
|
||||
static std::condition_variable cv;
|
||||
|
|
@ -56,4 +75,53 @@ bool MacroSwitchedScene()
|
|||
return macroSceneSwitched;
|
||||
}
|
||||
|
||||
std::string GetMacroName(Macro *macro)
|
||||
{
|
||||
return macro ? macro->Name() : "";
|
||||
}
|
||||
|
||||
int64_t MillisecondsSinceMacroConditionCheck(Macro *macro)
|
||||
{
|
||||
return macro ? macro->MsSinceLastCheck() : 0;
|
||||
}
|
||||
|
||||
bool MacroIsStopped(Macro *macro)
|
||||
{
|
||||
return macro ? macro->GetStop() : true;
|
||||
}
|
||||
|
||||
bool MacroIsPaused(Macro *macro)
|
||||
{
|
||||
return macro ? macro->Paused() : true;
|
||||
}
|
||||
|
||||
void AddMacroHelperThread(Macro *macro, std::thread &&newThread)
|
||||
{
|
||||
if (!macro) {
|
||||
return;
|
||||
}
|
||||
macro->AddHelperThread(std::move(newThread));
|
||||
}
|
||||
|
||||
bool RunMacroActions(Macro *macro)
|
||||
{
|
||||
return macro && macro->PerformActions(true);
|
||||
}
|
||||
|
||||
void ResetMacroConditionTimers(Macro *macro)
|
||||
{
|
||||
if (!macro) {
|
||||
return;
|
||||
}
|
||||
macro->ResetTimers();
|
||||
}
|
||||
|
||||
void ResetMacroRunCount(Macro *macro)
|
||||
{
|
||||
if (!macro) {
|
||||
return;
|
||||
}
|
||||
macro->ResetRunCount();
|
||||
}
|
||||
|
||||
} // namespace advss
|
||||
|
|
|
|||
|
|
@ -1,21 +1,65 @@
|
|||
#pragma once
|
||||
#include <atomic>
|
||||
#include <condition_variable>
|
||||
#include <deque>
|
||||
#include <optional>
|
||||
#include <string_view>
|
||||
#include <thread>
|
||||
|
||||
struct obs_data;
|
||||
typedef struct obs_data obs_data_t;
|
||||
|
||||
namespace advss {
|
||||
|
||||
class Macro;
|
||||
class MacroAction;
|
||||
class MacroCondition;
|
||||
|
||||
std::deque<std::shared_ptr<Macro>> &GetMacros();
|
||||
|
||||
std::optional<std::deque<std::shared_ptr<MacroAction>>>
|
||||
GetMacroActions(Macro *);
|
||||
std::optional<std::deque<std::shared_ptr<MacroCondition>>>
|
||||
GetMacroConditions(Macro *);
|
||||
|
||||
constexpr std::string_view GetSceneSwitchActionId()
|
||||
{
|
||||
return "scene_switch";
|
||||
}
|
||||
|
||||
constexpr auto macro_func = 10;
|
||||
|
||||
std::condition_variable &GetMacroWaitCV();
|
||||
std::condition_variable &GetMacroTransitionCV();
|
||||
|
||||
std::atomic_bool &MacroWaitShouldAbort();
|
||||
void SetMacroAbortWait(bool);
|
||||
|
||||
bool ShutdownCheckIsNecessary();
|
||||
std::atomic_int &GetShutdownConditionCount();
|
||||
|
||||
void SetMacroSwitchedScene(bool value);
|
||||
bool MacroSwitchedScene();
|
||||
|
||||
std::string GetMacroName(Macro *);
|
||||
|
||||
int64_t MillisecondsSinceMacroConditionCheck(Macro *);
|
||||
|
||||
bool MacroIsStopped(Macro *);
|
||||
bool MacroIsPaused(Macro *);
|
||||
|
||||
void AddMacroHelperThread(Macro *, std::thread &&);
|
||||
|
||||
bool CheckMacros();
|
||||
|
||||
bool RunMacroActions(Macro *);
|
||||
bool RunMacros();
|
||||
|
||||
void LoadMacros(obs_data_t *obj);
|
||||
void SaveMacros(obs_data_t *obj);
|
||||
|
||||
void InvalidateMacroTempVarValues();
|
||||
void ResetMacroConditionTimers(Macro *);
|
||||
void ResetMacroRunCount(Macro *);
|
||||
|
||||
} // namespace advss
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "macro-properties.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "obs-module-helper.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
#pragma once
|
||||
#include "macro.hpp"
|
||||
#include "variable-line-edit.hpp"
|
||||
|
||||
#include <QWidget>
|
||||
|
|
@ -12,6 +11,8 @@
|
|||
|
||||
namespace advss {
|
||||
|
||||
class Macro;
|
||||
|
||||
class MacroProperties {
|
||||
public:
|
||||
void Save(obs_data_t *obj) const;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
#include "macro-action.hpp"
|
||||
#include "macro-condition.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "macro-ref.hpp"
|
||||
#include "variable-string.hpp"
|
||||
#include "temp-variable.hpp"
|
||||
|
|
@ -17,8 +18,6 @@
|
|||
|
||||
namespace advss {
|
||||
|
||||
constexpr auto macro_func = 10;
|
||||
|
||||
class MacroDock;
|
||||
|
||||
class Macro {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#pragma once
|
||||
#include <macro.hpp>
|
||||
#include <macro-condition-edit.hpp>
|
||||
#include <variable-spinbox.hpp>
|
||||
|
||||
#include <QComboBox>
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#include "preview-dialog.hpp"
|
||||
#include "paramerter-wrappers.hpp"
|
||||
|
||||
#include <macro.hpp>
|
||||
#include <macro-condition-edit.hpp>
|
||||
#include <file-selection.hpp>
|
||||
#include <screenshot-helper.hpp>
|
||||
#include <slider-spinbox.hpp>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include "macro-list.hpp"
|
||||
#include "macro.hpp"
|
||||
#include "macro-helpers.hpp"
|
||||
#include "macro-selection.hpp"
|
||||
#include "obs-module-helper.hpp"
|
||||
#include "utility.hpp"
|
||||
|
||||
namespace advss {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user