#ifndef AUDIO_PROCESSOR_H #define AUDIO_PROCESSOR_H #include #include #include #include #include #include #include class AudioProcessor { public: AudioProcessor(); ~AudioProcessor(); void Initialize(int channels, bool reference); void Input(const std::vector& data); void Start(); void Stop(); bool IsRunning(); void OnOutput(std::function&& data)> callback); private: EventGroupHandle_t event_group_ = nullptr; esp_afe_sr_data_t* afe_communication_data_ = nullptr; std::vector input_buffer_; std::function&& data)> output_callback_; int channels_; bool reference_; void AudioProcessorTask(); }; #endif