You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
605 B
27 lines
605 B
5 years ago
|
#pragma once
|
||
|
#include <SLES/OpenSLES.h>
|
||
|
#include <SLES/OpenSLES_Android.h>
|
||
|
|
||
|
#include "sound.hpp"
|
||
|
|
||
|
|
||
|
class SLSound : public Sound {
|
||
|
public:
|
||
|
SLSound();
|
||
|
~SLSound();
|
||
|
bool play(AudibleAlert alert);
|
||
|
void stop();
|
||
|
void setVolume(int volume);
|
||
|
|
||
|
private:
|
||
|
bool init();
|
||
|
SLObjectItf engine_ = nullptr;
|
||
|
SLObjectItf outputMix_ = nullptr;
|
||
|
int last_volume_ = 0;
|
||
|
double last_set_volume_time_ = 0.;
|
||
|
AudibleAlert currentSound_ = AudibleAlert::NONE;
|
||
|
struct Player;
|
||
|
std::map<AudibleAlert, Player *> player_;
|
||
|
friend void SLAPIENTRY slplay_callback(SLPlayItf playItf, void *context, SLuint32 event);
|
||
|
};
|