Play-/Source/ui_android/SH_OpenSL.h

43 lines
891 B
C
Raw Permalink Normal View History

2016-03-25 12:19:34 -04:00
#pragma once
#include "../../tools/PsfPlayer/Source/SoundHandler.h"
#include <SLES/OpenSLES.h>
2016-03-30 20:36:01 -04:00
#include <SLES/OpenSLES_Android.h>
2016-03-25 12:19:34 -04:00
class CSH_OpenSL : public CSoundHandler
{
public:
2018-04-30 21:01:23 +01:00
CSH_OpenSL();
2016-03-25 12:19:34 -04:00
virtual ~CSH_OpenSL();
2018-04-30 21:01:23 +01:00
static CSoundHandler* HandlerFactory();
void Reset() override;
void Write(int16*, unsigned int, unsigned int) override;
bool HasFreeBuffers() override;
void RecycleBuffers() override;
2016-03-25 12:19:34 -04:00
private:
2016-03-31 00:28:23 -04:00
enum
{
BUFFER_COUNT = 5,
};
2018-04-30 21:01:23 +01:00
void CreateOutputMix();
void CreateAudioPlayer();
static void QueueCallback(SLAndroidSimpleBufferQueueItf, void*);
void QueueCallbackImpl();
SLObjectItf m_engineObject = nullptr;
SLEngineItf m_engine = nullptr;
SLObjectItf m_outputMixObject = nullptr;
SLObjectItf m_playerObject = nullptr;
SLPlayItf m_playerPlay = nullptr;
SLAndroidSimpleBufferQueueItf m_playerQueue = nullptr;
uint32 m_bufferCount = BUFFER_COUNT;
2016-03-25 12:19:34 -04:00
};