| 70 | } |
| 71 | |
| 72 | static std::vector<OBSWeakSource> getFiltersOfSource(OBSWeakSource source) |
| 73 | { |
| 74 | if (!source) { |
| 75 | return {}; |
| 76 | } |
| 77 | |
| 78 | auto enumFilters = [](obs_source_t *, obs_source_t *filter, void *ptr) { |
| 79 | auto filters = |
| 80 | reinterpret_cast<std::vector<OBSWeakSource> *>(ptr); |
| 81 | OBSWeakSourceAutoRelease weakFilter = |
| 82 | obs_source_get_weak_source(filter); |
| 83 | filters->emplace_back(weakFilter); |
| 84 | }; |
| 85 | |
| 86 | std::vector<OBSWeakSource> filters; |
| 87 | OBSSourceAutoRelease s = obs_weak_source_get_source(source); |
| 88 | obs_source_enum_filters(s, enumFilters, &filters); |
| 89 | return filters; |
| 90 | } |
| 91 | |
| 92 | std::vector<OBSWeakSource> |
| 93 | FilterSelection::GetFilters(const SourceSelection &source) const |