#pragma once
#include "AudioEngine.hpp"
#include <AudioToolbox/AudioToolbox.h>
namespace ableton
{
namespace linkaudio
{
template <typename Link>
class AudioPlatform
{
public:
AudioPlatform(Link& link);
~AudioPlatform();
AudioEngine<Link> mEngine;
private:
static OSStatus audioCallback(void* inRefCon,
AudioUnitRenderActionFlags*,
const AudioTimeStamp* inTimeStamp,
UInt32,
UInt32 inNumberFrames,
AudioBufferList* ioData);
static void streamFormatCallback(void* inRefCon,
AudioUnit inUnit,
AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement);
void initialize();
void uninitialize();
void start();
void stop();
AudioUnit mIoUnit;
};
} }
#include "AudioPlatform_CoreAudio.ipp"