#pragma once #include class IAudioRenderer { public: virtual ~IAudioRenderer() {} virtual bool prepareForPlayback(const OPUS_MULTISTREAM_CONFIGURATION* opusConfig) = 0; virtual void* getAudioBuffer(int* size) = 0; // Return false if an unrecoverable error has occurred and the renderer must be reinitialized virtual bool submitAudio(int bytesWritten) = 0; virtual int getCapabilities() = 0; virtual void remapChannels(POPUS_MULTISTREAM_CONFIGURATION) { // Use default channel mapping: // 0 - Front Left // 1 - Front Right // 2 - Center // 3 - LFE // 4 - Surround Left // 5 - Surround Right } };