Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_AUDIO_SOUND_OPENSLES_H__
00009 #define __SP_AUDIO_SOUND_OPENSLES_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #if defined(SP_COMPILE_WITH_OPENSLES)
00015
00016
00017 #include "SoundSystem/spSound.hpp"
00018
00019 #include <SLES/OpenSLES.h>
00020
00021 #if defined(SP_PLATFORM_ANDROID)
00022 # include <SLES/OpenSLES_Android.h>
00023 # include <SLES/OpenSLES_AndroidConfiguration.h>
00024 #endif
00025
00026
00027 namespace sp
00028 {
00029 namespace audio
00030 {
00031
00032
00033 class SP_EXPORT OpenSLESSound : public Sound
00034 {
00035
00036 public:
00037
00038 OpenSLESSound();
00039 ~OpenSLESSound();
00040
00041
00042
00043 bool reload(const io::stringc &Filename, u8 BufferCount = DEF_SOUND_BUFFERCOUNT);
00044 void close();
00045
00046 void play(bool Looped = false);
00047 void pause(bool Paused = true);
00048 void stop();
00049
00050 void setSeek(f32 Seek);
00051 f32 getSeek() const;
00052
00053 void setVolume(f32 Volume);
00054 void setSpeed(f32 Speed);
00055 void setBalance(f32 Balance);
00056
00057 f32 getLength() const;
00058 bool valid() const;
00059
00060 bool saveRecord(const io::stringc &Filename);
00061
00062 void beginRecording();
00063 void endRecording();
00064
00065 private:
00066
00067
00068
00069 bool createAudioPlayer();
00070
00071
00072
00073 SLObjectItf AudioPlayer_;
00074 SLPlayItf AudioPlay_;
00075 SLSeekItf AudioSeek_;
00076 SLVolumeItf AudioVolume_;
00077
00078
00079
00080 };
00081
00082
00083 }
00084
00085 }
00086
00087
00088 #endif
00089
00090 #endif
00091
00092
00093
00094