volume-control.hpp 733 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <obs.hpp>
  3. #include <QWidget>
  4. #include <QProgressBar>
  5. /* TODO: Make a real volume control that isn't terrible */
  6. class QLabel;
  7. class QSlider;
  8. class VolControl : public QWidget {
  9. Q_OBJECT
  10. private:
  11. OBSSource source;
  12. QLabel *nameLabel;
  13. QLabel *volLabel;
  14. QProgressBar *volMeter;
  15. QSlider *slider;
  16. bool signalChanged;
  17. static void OBSVolumeChanged(void *param, calldata_t calldata);
  18. static void OBSVolumeLevel(void *data, calldata_t calldata);
  19. private slots:
  20. void VolumeChanged(int vol);
  21. void VolumeLevel(int vol);
  22. void SliderChanged(int vol);
  23. public:
  24. VolControl(OBSSource source);
  25. ~VolControl();
  26. inline obs_source_t GetSource() const {return source;}
  27. };