mirror of
https://github.com/WarmUpTill/SceneSwitcher.git
synced 2026-03-30 13:55:31 -05:00
Fix media condition "any" / "all" selection ignoring some source types
This commit is contained in:
parent
a113327476
commit
2defa06ba4
|
|
@ -219,10 +219,7 @@ static bool enumSceneItem(obs_scene_t *, obs_sceneitem_t *item, void *ptr)
|
|||
}
|
||||
|
||||
auto source = obs_sceneitem_get_source(item);
|
||||
std::string sourceId = obs_source_get_id(source);
|
||||
|
||||
if (sourceId.compare("ffmpeg_source") == 0 ||
|
||||
sourceId.compare("vlc_source") == 0) {
|
||||
if (IsMediaSource(source)) {
|
||||
OBSWeakSourceAutoRelease weak =
|
||||
obs_source_get_weak_source(source);
|
||||
sources->emplace_back(weak);
|
||||
|
|
|
|||
|
|
@ -907,14 +907,18 @@ void populateVideoSelection(QComboBox *sel, bool addMainOutput, bool addScenes,
|
|||
sel->setCurrentIndex(0);
|
||||
}
|
||||
|
||||
bool IsMediaSource(obs_source_t *source)
|
||||
{
|
||||
uint32_t flags = obs_source_get_output_flags(source);
|
||||
return (flags & OBS_SOURCE_CONTROLLABLE_MEDIA) != 0;
|
||||
}
|
||||
|
||||
QStringList GetMediaSourceNames()
|
||||
{
|
||||
auto sourceEnum = [](void *param, obs_source_t *source) -> bool /* -- */
|
||||
{
|
||||
QStringList *list = reinterpret_cast<QStringList *>(param);
|
||||
uint32_t flags = obs_source_get_output_flags(source);
|
||||
|
||||
if ((flags & OBS_SOURCE_CONTROLLABLE_MEDIA) != 0) {
|
||||
if (IsMediaSource(source)) {
|
||||
*list << obs_source_get_name(source);
|
||||
}
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ std::string GetSceneItemTransform(obs_scene_item *item);
|
|||
|
||||
/* Selection helpers */
|
||||
|
||||
bool IsMediaSource(obs_source_t *source);
|
||||
|
||||
QStringList GetAudioSourceNames();
|
||||
QStringList GetSourcesWithFilterNames();
|
||||
QStringList GetMediaSourceNames();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user