You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1011 B
C++
42 lines
1011 B
C++
// SPDX-License-Identifier: BSD-2-Clause
|
|
// author: Max Kellermann <max.kellermann@gmail.com>
|
|
|
|
#ifndef SLES_ANDROID_SIMPLE_BUFFER_QUEUE_HPP
|
|
#define SLES_ANDROID_SIMPLE_BUFFER_QUEUE_HPP
|
|
|
|
#include <SLES/OpenSLES_Android.h>
|
|
|
|
namespace SLES {
|
|
/**
|
|
* OO wrapper for an OpenSL/ES SLAndroidSimpleBufferQueueItf
|
|
* variable.
|
|
*/
|
|
class AndroidSimpleBufferQueue {
|
|
SLAndroidSimpleBufferQueueItf queue;
|
|
|
|
public:
|
|
AndroidSimpleBufferQueue() = default;
|
|
explicit AndroidSimpleBufferQueue(SLAndroidSimpleBufferQueueItf _queue)
|
|
:queue(_queue) {}
|
|
|
|
SLresult Enqueue(const void *pBuffer, SLuint32 size) {
|
|
return (*queue)->Enqueue(queue, pBuffer, size);
|
|
}
|
|
|
|
SLresult Clear() {
|
|
return (*queue)->Clear(queue);
|
|
}
|
|
|
|
SLresult GetState(SLAndroidSimpleBufferQueueState *pState) {
|
|
return (*queue)->GetState(queue, pState);
|
|
}
|
|
|
|
SLresult RegisterCallback(slAndroidSimpleBufferQueueCallback callback,
|
|
void *pContext) {
|
|
return (*queue)->RegisterCallback(queue, callback, pContext);
|
|
}
|
|
};
|
|
}
|
|
|
|
#endif
|