Keep desktop stream mute controls synchronized with publication

This commit is contained in:
evgeny committed 2026-10-16 01:48:39 +02:00
1 parent f4d4b6033e
commit e47ff579b3
3 files changed
+17 -3

No files matched your search

+12 -1
View File
@@ -108,7 +108,18 @@ bool StreamPublishEngine::running() const { return m->running.load(); }
uint64_t StreamPublishEngine::group() const { return m->group; }
StreamPublishConfig StreamPublishEngine::config() const { std::lock_guard<std::mutex> guard(m->lock); return m->wanted; }
QList<int> StreamPublishEngine::codecs() const { std::lock_guard<std::mutex> guard(m->lock); return m->codecs; }
void StreamPublishEngine::setMuted(bool muted) { m->muted = muted; }
bool StreamPublishEngine::muted() const { return m->muted.load(); }
void StreamPublishEngine::setMuted(bool muted) {
if (!m->running || !config().audio) {
DEBUG_WARN(DEBUG_CATEGORY_STREAM, "desktop stream mute without active audio"); return;
}
bool previous = m->muted.exchange(muted);
if (!gui_stream_publish_audio(m->id, !muted)) {
m->muted = previous; publicationFailed(m->id, text("Could not change stream audio")); return;
}
DEBUG_INFO(DEBUG_CATEGORY_STREAM, "desktop stream audio id=%llu muted=%d", (unsigned long long)m->id, muted);
emit configurationChanged();
}
QList<StreamVideoSource> StreamPublishEngine::sources() {
QList<StreamVideoSource> sources;