adv-audio-control.hpp 2.0 KB

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