#pragma once #include #include #include "Config.h" class AudioLevelTracker { public: AudioLevelTracker(); void updateMaxLevel(int32_t sample); int32_t getMaxLevel() const; void resetMaxLevel(); private: struct SamplePoint { uint32_t timestamp; int32_t value; }; std::deque sampleHistory; int32_t maxLevel; static const uint32_t HISTORY_DURATION_MS = 3000; // 3 seconds history static const int32_t MAX_RANGE_LIMIT = Config::DEFAULT_RANGE_LIMIT << 16; // Scale up 16-bit limit };