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