| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | 
							- #pragma once
 
- #include <obs.hpp>
 
- #include <QWidget>
 
- #include <QPointer>
 
- #include <QDoubleSpinBox>
 
- #include <QStackedWidget>
 
- #include "balance-slider.hpp"
 
- class QGridLayout;
 
- class QLabel;
 
- class QSpinBox;
 
- class QCheckBox;
 
- class QComboBox;
 
- enum class VolumeType {
 
- 	dB,
 
- 	Percent,
 
- };
 
- class OBSAdvAudioCtrl : public QObject {
 
- 	Q_OBJECT
 
- private:
 
- 	OBSSource source;
 
- 	QPointer<QWidget> mixerContainer;
 
- 	QPointer<QWidget> balanceContainer;
 
- 	QPointer<QLabel> iconLabel;
 
- 	QPointer<QLabel> nameLabel;
 
- 	QPointer<QLabel> active;
 
- 	QPointer<QStackedWidget> stackedWidget;
 
- 	QPointer<QSpinBox> percent;
 
- 	QPointer<QDoubleSpinBox> volume;
 
- 	QPointer<QCheckBox> forceMono;
 
- 	QPointer<BalanceSlider> balance;
 
- 	QPointer<QLabel> labelL;
 
- 	QPointer<QLabel> labelR;
 
- 	QPointer<QSpinBox> syncOffset;
 
- 	QPointer<QComboBox> monitoringType;
 
- 	QPointer<QCheckBox> mixer1;
 
- 	QPointer<QCheckBox> mixer2;
 
- 	QPointer<QCheckBox> mixer3;
 
- 	QPointer<QCheckBox> mixer4;
 
- 	QPointer<QCheckBox> mixer5;
 
- 	QPointer<QCheckBox> mixer6;
 
- 	OBSSignal volChangedSignal;
 
- 	OBSSignal syncOffsetSignal;
 
- 	OBSSignal flagsSignal;
 
- 	OBSSignal monitoringTypeSignal;
 
- 	OBSSignal mixersSignal;
 
- 	OBSSignal activateSignal;
 
- 	OBSSignal deactivateSignal;
 
- 	OBSSignal balChangedSignal;
 
- 	OBSSignal renameSignal;
 
- 	static void OBSSourceActivated(void *param, calldata_t *calldata);
 
- 	static void OBSSourceDeactivated(void *param, calldata_t *calldata);
 
- 	static void OBSSourceFlagsChanged(void *param, calldata_t *calldata);
 
- 	static void OBSSourceVolumeChanged(void *param, calldata_t *calldata);
 
- 	static void OBSSourceSyncChanged(void *param, calldata_t *calldata);
 
- 	static void OBSSourceMonitoringTypeChanged(void *param,
 
- 						   calldata_t *calldata);
 
- 	static void OBSSourceMixersChanged(void *param, calldata_t *calldata);
 
- 	static void OBSSourceBalanceChanged(void *param, calldata_t *calldata);
 
- 	static void OBSSourceRenamed(void *param, calldata_t *calldata);
 
- public:
 
- 	OBSAdvAudioCtrl(QGridLayout *layout, obs_source_t *source_);
 
- 	virtual ~OBSAdvAudioCtrl();
 
- 	inline obs_source_t *GetSource() const { return source; }
 
- 	void ShowAudioControl(QGridLayout *layout);
 
- 	void SetVolumeWidget(VolumeType type);
 
- 	void SetIconVisible(bool visible);
 
- public slots:
 
- 	void SourceActiveChanged(bool active);
 
- 	void SourceFlagsChanged(uint32_t flags);
 
- 	void SourceVolumeChanged(float volume);
 
- 	void SourceSyncChanged(int64_t offset);
 
- 	void SourceMonitoringTypeChanged(int type);
 
- 	void SourceMixersChanged(uint32_t mixers);
 
- 	void SourceBalanceChanged(int balance);
 
- 	void SetSourceName(QString newName);
 
- 	void volumeChanged(double db);
 
- 	void percentChanged(int percent);
 
- 	void downmixMonoChanged(bool checked);
 
- 	void balanceChanged(int val);
 
- 	void syncOffsetChanged(int milliseconds);
 
- 	void monitoringTypeChanged(int index);
 
- 	void mixer1Changed(bool checked);
 
- 	void mixer2Changed(bool checked);
 
- 	void mixer3Changed(bool checked);
 
- 	void mixer4Changed(bool checked);
 
- 	void mixer5Changed(bool checked);
 
- 	void mixer6Changed(bool checked);
 
- 	void ResetBalance();
 
- };
 
 
  |