#include #include #include #include #include #include #include "device_android.h" #include "debug.h" namespace audiere { AndroidAudioDevice* AndroidAudioDevice::create(const ParameterList& parameters) { int ret = AGAudioInit(44100, 2, 16); if (ret < 0) return 0; return new AndroidAudioDevice(44100, 8192); } AndroidAudioDevice::AndroidAudioDevice(int rate, int buffer_size) : ThreadedMixerDevice(rate, buffer_size, 4), m_quit(false) { start(); } AndroidAudioDevice::~AndroidAudioDevice() { ADR_GUARD("AndroidAudioDevice::~AndroidAudioDevice"); shutdown(); AGAudioSetReadCallback(0, 0); AGAudioUninit(); } void AndroidAudioDevice::shutdown() { m_quit = true; ThreadedMixerDevice::shutdown(); } void AndroidAudioDevice::outputBuffer(const char* buf, int buf_len) { while (AGAudioIsPaused()) { if (m_quit) return; AI_Sleep(20); } AGAudioWrite(buf, buf_len); } const char* ADR_CALL AndroidAudioDevice::getName() { return "android"; } }