From 1610ac04ffdd9a34327e398da770d6630ca27a9b Mon Sep 17 00:00:00 2001 From: jpark37 Date: Thu, 2 Jun 2022 22:17:14 -0700 Subject: [PATCH] UI: Add application audio capture to toolbar --- UI/context-bar-controls.cpp | 20 ++++++++++++++++++++ UI/context-bar-controls.hpp | 8 ++++++++ UI/window-basic-main.cpp | 9 +++++++++ 3 files changed, 37 insertions(+) diff --git a/UI/context-bar-controls.cpp b/UI/context-bar-controls.cpp index 9299970a9..bbe655ac5 100644 --- a/UI/context-bar-controls.cpp +++ b/UI/context-bar-controls.cpp @@ -273,6 +273,26 @@ void WindowCaptureToolbar::Init() ComboSelectToolbar::Init(); } +ApplicationAudioCaptureToolbar::ApplicationAudioCaptureToolbar(QWidget *parent, + OBSSource source) + : ComboSelectToolbar(parent, source) +{ +} + +void ApplicationAudioCaptureToolbar::Init() +{ + delete ui->activateButton; + ui->activateButton = nullptr; + + obs_module_t *mod = obs_get_module("win-wasapi"); + const char *device_str = obs_module_get_locale_text(mod, "Window"); + ui->deviceLabel->setText(device_str); + + prop_name = "window"; + + ComboSelectToolbar::Init(); +} + DisplayCaptureToolbar::DisplayCaptureToolbar(QWidget *parent, OBSSource source) : ComboSelectToolbar(parent, source) { diff --git a/UI/context-bar-controls.hpp b/UI/context-bar-controls.hpp index a3ac756d6..48c743afb 100644 --- a/UI/context-bar-controls.hpp +++ b/UI/context-bar-controls.hpp @@ -82,6 +82,14 @@ public: void Init() override; }; +class ApplicationAudioCaptureToolbar : public ComboSelectToolbar { + Q_OBJECT + +public: + ApplicationAudioCaptureToolbar(QWidget *parent, OBSSource source); + void Init() override; +}; + class DisplayCaptureToolbar : public ComboSelectToolbar { Q_OBJECT diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp index 9fbc6177b..bbc8fc575 100644 --- a/UI/window-basic-main.cpp +++ b/UI/window-basic-main.cpp @@ -3110,6 +3110,15 @@ void OBSBasic::UpdateContextBar(bool force) c->Init(); ui->emptySpace->layout()->addWidget(c); + } else if (strcmp(id, + "wasapi_process_output_capture") == + 0) { + ApplicationAudioCaptureToolbar *c = + new ApplicationAudioCaptureToolbar( + ui->emptySpace, source); + c->Init(); + ui->emptySpace->layout()->addWidget(c); + } else if (strcmp(id, "window_capture") == 0 || strcmp(id, "xcomposite_input") == 0) { WindowCaptureToolbar *c =