#pragma once #include #include #include #include "AudioTransform.h" namespace bell { class Gain : public bell::AudioTransform { private: float gainFactor = 1.0f; std::vector channels; public: Gain(); ~Gain() {}; float gainDb = 0.0; void configure(std::vector channels, float gainDB); std::unique_ptr process(std::unique_ptr data) override; void reconfigure() override { std::scoped_lock lock(this->accessMutex); float gain = config->getFloat("gain"); this->channels = config->getChannels(); if (gainDb == gain) { return; } this->configure(channels, gain); } }; }