19#include <SLES/OpenSLES.h>
20#include <SLES/OpenSLES_Android.h>
38#define ANDROID_BUFFER_QUEUE_LENGTH 2U
39#define BUFFER_SIZE 512U
41#define MAX_NUMBER_INTERFACES 5
42#define MAX_NUMBER_INPUT_DEVICES 3
109 virtual int getIndexCapture()
const override {
return 0; }
116 virtual int getIndexPlayback()
const override {
return 0; }
123 virtual int getIndexRingtone()
const override {
return 0; }
127 void dumpAvailableEngineInterfaces();
131 virtual void updatePreference(AudioPreference&
pref,
int index,
AudioDeviceType type)
override;
133 std::mutex recMtx {};
134 std::condition_variable recCv {};
149 std::vector<sample_buf> bufs_ {};
160 std::unique_ptr<opensl::AudioPlayer> player_ {};
161 std::unique_ptr<opensl::AudioPlayer> ringtone_ {};
162 std::unique_ptr<opensl::AudioRecorder> recorder_ {};
164 std::thread recThread {};
void shutdownAudioEngine()
std::vector< std::string > getCaptureDeviceList() const override
Scan the sound card available for capture on the system.
void startStream(AudioDeviceType stream=AudioDeviceType::ALL) override
Start the capture stream and prepare the playback stream.
virtual std::string getAudioDeviceName(int, AudioDeviceType) const override
virtual int getAudioDeviceIndex(const std::string &, AudioDeviceType) const override
std::vector< std::string > getPlaybackDeviceList() const override
Scan the sound card available for capture on the system.
~OpenSLLayer()
Destructor.
void stopStream(AudioDeviceType stream=AudioDeviceType::ALL) override
Stop the playback and capture streams.
void emitSignal(Args... args)
Simple macro to hide class' copy constructor and assignment operator.
#define NON_COPYABLE(ClassName)