obs-studio/obs/adv-audio-control.hpp
jp9000 93ec22ff54 UI: Implement source mixer modification signals
Implement the signals for the mixer checkboxes in the advanced audio
control so that it properly relays the values to/from the source when
the mixers are changed in obs or when the mixers are changed by the
user.
2015-02-04 16:51:52 -08:00

56 lines
1.7 KiB
C++

#pragma once
#include <obs.hpp>
#include <QWidget>
class QLabel;
class QSpinBox;
class QCheckBox;
class QSlider;
class OBSAdvAudioCtrl : public QWidget {
Q_OBJECT
private:
OBSSource source;
QLabel *nameLabel = nullptr;
QSpinBox *volume = nullptr;
QCheckBox *forceMono = nullptr;
QSlider *panning = nullptr;
QSpinBox *syncOffset = nullptr;
QCheckBox *mixer1 = nullptr;
QCheckBox *mixer2 = nullptr;
QCheckBox *mixer3 = nullptr;
QCheckBox *mixer4 = nullptr;
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(obs_source_t *source_);
inline obs_source_t *GetSource() const {return source;}
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 mixer1Changed(bool checked);
void mixer2Changed(bool checked);
void mixer3Changed(bool checked);
void mixer4Changed(bool checked);
};