# Amuse: include/amuse/IBackendVoiceAllocator.hpp Source File

IBackendVoiceAllocator.hpp
#ifndef __AMUSE_IBACKENDVOICEALLOCATOR_HPP__
#define __AMUSE_IBACKENDVOICEALLOCATOR_HPP__
#include <memory>
namespace amuse
{
class IBackendVoice;
class IBackendSubmix;
class Voice;
class Submix;
enum class AudioChannelSet
{
Stereo,
Quad,
Surround51,
Surround71,
Unknown = 0xff
};
class IBackendVoiceAllocator
{
public:
virtual ~IBackendVoiceAllocator() = default;
virtual std::unique_ptr<IBackendVoice> allocateVoice(Voice& clientVox,
double sampleRate,
bool dynamicPitch)=0;
virtual std::unique_ptr<IBackendSubmix> allocateSubmix(Submix& clientSmx)=0;
virtual AudioChannelSet getAvailableSet()=0;
virtual void pumpAndMixVoices()=0;
};
}
#endif // __AMUSE_IBACKENDVOICEALLOCATOR_HPP__
amuse
Definition: AudioGroup.hpp:8
amuse::Voice
Definition: Voice.hpp:30
amuse::Submix
Definition: Submix.hpp:20
amuse::IBackendVoiceAllocator
Definition: IBackendVoiceAllocator.hpp:24