diff --git a/src/macro-core/macro-action-audio.cpp b/src/macro-core/macro-action-audio.cpp index 909b4cf9..357521e9 100644 --- a/src/macro-core/macro-action-audio.cpp +++ b/src/macro-core/macro-action-audio.cpp @@ -39,6 +39,22 @@ const static std::map fadeTypes = { constexpr auto fadeInterval = std::chrono::milliseconds(100); constexpr float minFade = 0.000001f; +// For backwards compatibility +#if LIBOBS_API_VER >= MAKE_SEMANTIC_VERSION(29, 0, 0) +static float get_master_volume() +{ + return 1.f; +} + +static void set_master_volume(float) +{ + return; +} +#else +auto get_master_volume = obs_get_master_volume; +auto set_master_volume = obs_set_master_volume; +#endif + void MacroActionAudio::SetFadeActive(bool value) { if (_action == Action::SOURCE_VOLUME) { @@ -87,7 +103,7 @@ void MacroActionAudio::SetVolume(float vol) obs_source_set_volume(s, vol); obs_source_release(s); } else { - obs_set_master_volume(vol); + set_master_volume(vol); } } @@ -102,7 +118,7 @@ float MacroActionAudio::GetVolume() curVol = obs_source_get_volume(s); obs_source_release(s); } else { - curVol = obs_get_master_volume(); + curVol = get_master_volume(); } return curVol; } @@ -287,15 +303,13 @@ std::string MacroActionAudio::GetShortDesc() const static inline void populateActionSelection(QComboBox *list) { for (const auto &[action, name] : actionTypes) { - if (action == MacroActionAudio::Action::MONITOR) { - if (obs_audio_monitoring_available()) { - list->addItem(obs_module_text(name.c_str()), - static_cast(action)); - } - } else { - list->addItem(obs_module_text(name.c_str()), - static_cast(action)); + if (action == MacroActionAudio::Action::MONITOR && + !obs_audio_monitoring_available()) { + continue; } + + list->addItem(obs_module_text(name.c_str()), + static_cast(action)); } } @@ -473,6 +487,14 @@ void MacroActionAudioEdit::SetWidgetVisibility() _wait->setVisible(hasVolumeControl(_entryData->_action) && _entryData->_fade); + // TODO: Remove this in a future version: + if (_entryData->_action != MacroActionAudio::Action::MASTER_VOLUME && + obs_get_version() >= MAKE_SEMANTIC_VERSION(29, 0, 0)) { + _actions->removeItem(_actions->findText(obs_module_text( + actionTypes.at(MacroActionAudio::Action::MASTER_VOLUME) + .c_str()))); + } + updateGeometry(); adjustSize(); }