diff options
Diffstat (limited to 'src/libjin/audio/sdl/source.h')
-rw-r--r-- | src/libjin/audio/sdl/source.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/libjin/audio/sdl/source.h b/src/libjin/audio/sdl/source.h index 052a49e..5ea2cf2 100644 --- a/src/libjin/audio/sdl/source.h +++ b/src/libjin/audio/sdl/source.h @@ -11,6 +11,50 @@ namespace audio class SDLSource : public Source { + public: + + SDLSource() {} + ~SDLSource() {} + + void generateSamples(Uint8* streamIn, int len); + + /* ISource interface */ + void play() override; + void stop() override; + void pause() override; + void resume() override; + void rewind() override; + void isStopped() const override; + void isPaused() const override; + void isFinished() const override; + void setPitch(float pitch) override; + void setVolume(float volume) override; + bool setLoop(bool loop) override; + void setRate(float rate) override; + + private: + + typedef struct Command + { + typedef enum Action + { + Nothing = 0, + Play, + Stop, + Pause, + Resume, + Rewind, + SetVolume, + }; + Action action; + union { + int _integer; + bool _boolean; + const char* _string; + } parameter; + }; + + Command command; }; } |