Add option to abort active fade when starting new fade

This commit is contained in:
WarmUpTill
2022-03-04 22:42:02 +01:00
committed by WarmUpTill
parent c87589d534
commit 036afb4a4f
4 changed files with 88 additions and 22 deletions

View File

@@ -41,6 +41,7 @@ public:
Duration _duration;
double _rate = 100.;
bool _wait = false;
bool _abortActiveFade = false;
private:
void StartFade();
@@ -49,6 +50,7 @@ private:
float GetVolume();
void SetFadeActive(bool value);
bool FadeActive();
std::atomic_int *GetFadeIdPtr();
static bool _registered;
static const std::string id;
@@ -61,7 +63,6 @@ public:
MacroActionAudioEdit(
QWidget *parent,
std::shared_ptr<MacroActionAudio> entryData = nullptr);
void SetWidgetVisibility();
void UpdateEntryData();
static QWidget *Create(QWidget *parent,
std::shared_ptr<MacroAction> action)
@@ -79,6 +80,7 @@ private slots:
void DurationChanged(double seconds);
void RateChanged(double value);
void WaitChanged(int value);
void AbortActiveFadeChanged(int value);
void FadeTypeChanged(int value);
signals:
void HeaderInfoChanged(const QString &);
@@ -92,9 +94,13 @@ protected:
DurationSelection *_duration;
QDoubleSpinBox *_rate;
QCheckBox *_wait;
QHBoxLayout *_fadeLayout;
QCheckBox *_abortActiveFade;
QHBoxLayout *_fadeTypeLayout;
QVBoxLayout *_fadeOptionsLayout;
std::shared_ptr<MacroActionAudio> _entryData;
private:
void SetWidgetVisibility();
bool _loading = true;
};

View File

@@ -113,6 +113,7 @@ struct SwitcherData {
struct AudioFadeInfo {
std::atomic_bool active = {false};
std::atomic_int id = {0};
};
AudioFadeInfo masterAudioFade;
std::unordered_map<std::string, AudioFadeInfo> activeAudioFades;