Save shared stream microphone through the main window
This commit is contained in:
1 parent
fbc030dc5b
commit
1719f8e108
3 files changed
+4
-5
No files matched your search
@@ -806,6 +806,8 @@ void MainWindow::showStreamPublisher(quint64 group, StreamGridWindow* returnTo)
|
||||
qint64 constructedUs = elapsed.nsecsElapsed() / 1000;
|
||||
connect(m_streamPublishWindow, &StreamPublishWindow::settingsChanged, this,
|
||||
[](const QString& settings) { postUiStateKv("stream_capture_settings", settings); });
|
||||
connect(m_streamPublishWindow, &StreamPublishWindow::microphoneChanged, this,
|
||||
[](const QString& id) { postUiStateKv("audio_input_id", id); });
|
||||
if (returnTo) connect(m_streamPublishWindow, &StreamPublishWindow::closed, returnTo, [returnTo] {
|
||||
if (!returnTo->isVisible()) return;
|
||||
returnTo->raise(); returnTo->activateWindow();
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#include "videoplayer_window.h"
|
||||
#include "capture_controls.h"
|
||||
#include "sound_manager.h"
|
||||
#include "../transport/gui_bridge.h"
|
||||
#include "debug_config.h"
|
||||
#include <QVBoxLayout>
|
||||
#include <QCoreApplication>
|
||||
@@ -201,11 +200,8 @@ StreamPublishWindow::StreamPublishWindow(StreamPublishEngine* engine, uint64_t g
|
||||
auto* sound = SoundManager::instance();
|
||||
const QString id = action->data().toString();
|
||||
if (id != sound->captureDevice()) {
|
||||
if (gui_bridge_post_setting(GUI_SETTING_UI_STATE, "audio_input_id", id.toUtf8().constData()) < 0) {
|
||||
DEBUG_ERROR(DEBUG_CATEGORY_STREAM, "desktop microphone selection could not be saved input=%s", qPrintable(id));
|
||||
m_status->setText(text("Failed to select device")); refreshMicrophones(); synchronize(); return;
|
||||
}
|
||||
sound->setDevices(sound->playbackDevice(), id);
|
||||
emit microphoneChanged(id);
|
||||
}
|
||||
}
|
||||
synchronize(); saveSettings();
|
||||
|
||||
@@ -23,6 +23,7 @@ public:
|
||||
StreamPublishWindow(StreamPublishEngine* engine, uint64_t group, QWidget* parent = nullptr, const QString& settings = {});
|
||||
signals:
|
||||
void settingsChanged(const QString& settings); // Новый компактный JSON, только при изменении выбора; runtime handles не сохраняются.
|
||||
void microphoneChanged(const QString& id); // Новый общий выбор SoundManager; владелец сохраняет audio_input_id в ui_state.
|
||||
void closed(); // Принят closeEvent; MainWindow использует сигнал для возврата фокуса в grid, без остановки публикации.
|
||||
protected:
|
||||
void closeEvent(QCloseEvent* event) override;
|
||||
|
||||
Reference in new issue
Block a user