adv-audio-control.hpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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> balanceContainer;
  18. QPointer<QLabel> nameLabel;
  19. QPointer<QSpinBox> volume;
  20. QPointer<QCheckBox> forceMono;
  21. QPointer<QSlider> balance;
  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. void ShowAudioControl(QGridLayout *layout);
  45. public slots:
  46. void SourceFlagsChanged(uint32_t flags);
  47. void SourceVolumeChanged(float volume);
  48. void SourceSyncChanged(int64_t offset);
  49. void SourceMixersChanged(uint32_t mixers);
  50. void volumeChanged(int percentage);
  51. void downmixMonoChanged(bool checked);
  52. void balanceChanged(int val);
  53. void syncOffsetChanged(int milliseconds);
  54. void monitoringTypeChanged(int index);
  55. void mixer1Changed(bool checked);
  56. void mixer2Changed(bool checked);
  57. void mixer3Changed(bool checked);
  58. void mixer4Changed(bool checked);
  59. void mixer5Changed(bool checked);
  60. void mixer6Changed(bool checked);
  61. };