obs-studio/UI/window-basic-adv-audio.hpp
Clayton Groeneveld 295386781f UI: Cleanup advanced audio window
This converts the advanced audio window to use
a ui form, so it is easier to modify in the future.

This also fixes sizing issues with the control widgets,
as before the audio tracks would be clipped, because the
widgets in the window were too wide.
2022-06-18 23:13:13 +10:00

46 lines
984 B
C++

#pragma once
#include <obs.hpp>
#include <QDialog>
#include <vector>
#include <memory>
class OBSAdvAudioCtrl;
class Ui_OBSAdvAudio;
// "Basic advanced audio"? ...
class OBSBasicAdvAudio : public QDialog {
Q_OBJECT
private:
OBSSignal sourceAddedSignal;
OBSSignal sourceRemovedSignal;
bool showInactive;
bool showVisible;
std::vector<OBSAdvAudioCtrl *> controls;
inline void AddAudioSource(obs_source_t *source);
static bool EnumSources(void *param, obs_source_t *source);
static void OBSSourceAdded(void *param, calldata_t *calldata);
static void OBSSourceRemoved(void *param, calldata_t *calldata);
std::unique_ptr<Ui_OBSAdvAudio> ui;
public slots:
void SourceAdded(OBSSource source);
void SourceRemoved(OBSSource source);
void on_usePercent_toggled(bool checked);
void on_activeOnly_toggled(bool checked);
public:
OBSBasicAdvAudio(QWidget *parent);
~OBSBasicAdvAudio();
void SetShowInactive(bool showInactive);
void SetIconsVisible(bool visible);
};