#pragma once #include // for shared_ptr, unique_ptr #include // for mutex #include // for vector #include "StreamInfo.h" // for StreamInfo namespace bell { class AudioTransform; class Gain; class AudioPipeline { private: std::shared_ptr headroomGainTransform; public: AudioPipeline(); ~AudioPipeline(){}; std::mutex accessMutex; std::vector> transforms; void recalculateHeadroom(); void addTransform(std::shared_ptr transform); void volumeUpdated(int volume); std::unique_ptr process(std::unique_ptr data); }; }; // namespace bell