AudioPipeline.h 604 B

12345678910111213141516171819202122232425262728
  1. #pragma once
  2. #include "AudioTransform.h"
  3. #include "StreamInfo.h"
  4. #include <memory>
  5. #include "Gain.h"
  6. #include <mutex>
  7. namespace bell
  8. {
  9. class AudioPipeline
  10. {
  11. private:
  12. std::shared_ptr<Gain> headroomGainTransform;
  13. public:
  14. AudioPipeline();
  15. ~AudioPipeline(){};
  16. std::mutex accessMutex;
  17. std::vector<std::shared_ptr<AudioTransform>> transforms;
  18. void recalculateHeadroom();
  19. void addTransform(std::shared_ptr<AudioTransform> transform);
  20. void volumeUpdated(int volume);
  21. std::unique_ptr<StreamInfo> process(std::unique_ptr<StreamInfo> data);
  22. };
  23. }; // namespace bell