File: adv-audio-control.hpp

package info (click to toggle)
obs-studio 22.0.3%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 23,052 kB
  • sloc: ansic: 134,708; cpp: 49,169; objc: 1,036; makefile: 829; sh: 410; python: 360
file content (73 lines) | stat: -rw-r--r-- 2,097 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#pragma once

#include <obs.hpp>
#include <QWidget>
#include <QPointer>

class QGridLayout;
class QLabel;
class QSpinBox;
class QCheckBox;
class QSlider;
class QComboBox;

class OBSAdvAudioCtrl : public QObject {
	Q_OBJECT

private:
	OBSSource              source;

	QPointer<QWidget>      forceMonoContainer;
	QPointer<QWidget>      mixerContainer;
	QPointer<QWidget>      panningContainer;

	QPointer<QLabel>       nameLabel;
	QPointer<QSpinBox>     volume;
	QPointer<QCheckBox>    forceMono;
	QPointer<QSlider>      panning;
	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              mixersSignal;

	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 OBSSourceMixersChanged(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);

public slots:
	void SourceFlagsChanged(uint32_t flags);
	void SourceVolumeChanged(float volume);
	void SourceSyncChanged(int64_t offset);
	void SourceMixersChanged(uint32_t mixers);

	void volumeChanged(int percentage);
	void downmixMonoChanged(bool checked);
	void panningChanged(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);
};