adv-audio-control.hpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #pragma once
  2. #include <obs.hpp>
  3. #include <QWidget>
  4. #include <QPointer>
  5. class QGridLayout;
  6. class QLabel;
  7. class QSpinBox;
  8. class QCheckBox;
  9. class QSlider;
  10. class QComboBox;
  11. class OBSAdvAudioCtrl : public QObject {
  12. Q_OBJECT
  13. private:
  14. OBSSource source;
  15. QPointer<QWidget> forceMonoContainer;
  16. QPointer<QWidget> mixerContainer;
  17. QPointer<QWidget> panningContainer;
  18. QPointer<QLabel> nameLabel;
  19. QPointer<QSpinBox> volume;
  20. QPointer<QCheckBox> forceMono;
  21. QPointer<QSlider> panning;
  22. QPointer<QLabel> labelL;
  23. QPointer<QLabel> labelR;
  24. QPointer<QSpinBox> syncOffset;
  25. QPointer<QComboBox> monitoringType;
  26. QPointer<QCheckBox> mixer1;
  27. QPointer<QCheckBox> mixer2;
  28. QPointer<QCheckBox> mixer3;
  29. QPointer<QCheckBox> mixer4;
  30. QPointer<QCheckBox> mixer5;
  31. QPointer<QCheckBox> mixer6;
  32. OBSSignal volChangedSignal;
  33. OBSSignal syncOffsetSignal;
  34. OBSSignal flagsSignal;
  35. OBSSignal mixersSignal;
  36. static void OBSSourceFlagsChanged(void *param, calldata_t *calldata);
  37. static void OBSSourceVolumeChanged(void *param, calldata_t *calldata);
  38. static void OBSSourceSyncChanged(void *param, calldata_t *calldata);
  39. static void OBSSourceMixersChanged(void *param, calldata_t *calldata);
  40. public:
  41. OBSAdvAudioCtrl(QGridLayout *layout, obs_source_t *source_);
  42. virtual ~OBSAdvAudioCtrl();
  43. inline obs_source_t *GetSource() const {return source;}
  44. public slots:
  45. void SourceFlagsChanged(uint32_t flags);
  46. void SourceVolumeChanged(float volume);
  47. void SourceSyncChanged(int64_t offset);
  48. void SourceMixersChanged(uint32_t mixers);
  49. void volumeChanged(int percentage);
  50. void downmixMonoChanged(bool checked);
  51. void panningChanged(int val);
  52. void syncOffsetChanged(int milliseconds);
  53. void monitoringTypeChanged(int index);
  54. void mixer1Changed(bool checked);
  55. void mixer2Changed(bool checked);
  56. void mixer3Changed(bool checked);
  57. void mixer4Changed(bool checked);
  58. void mixer5Changed(bool checked);
  59. void mixer6Changed(bool checked);
  60. };