#pragma once #include #include class AudioInterface { public: using AudioCallback = std::function&)>; virtual ~AudioInterface() = default; // Starts the audio interface. The callback will be invoked with raw 16-bit PCM mono samples at 16kHz. virtual void start(AudioCallback inputCallback) = 0; // Stops audio I/O and releases underlying resources. virtual void stop() = 0; // Play audio to the user; audio is 16-bit PCM mono 16kHz. virtual void output(const std::vector& audio) = 0; // Immediately stop any buffered / ongoing output. virtual void interrupt() = 0; };