23 lines
672 B
C++
23 lines
672 B
C++
#pragma once
|
|
|
|
#include <functional>
|
|
#include <vector>
|
|
|
|
class AudioInterface {
|
|
public:
|
|
using AudioCallback = std::function<void(const std::vector<char>&)>;
|
|
|
|
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<char>& audio) = 0;
|
|
|
|
// Immediately stop any buffered / ongoing output.
|
|
virtual void interrupt() = 0;
|
|
};
|