aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/audio/sdl/source.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/audio/sdl/source.h')
-rw-r--r--src/libjin/audio/sdl/source.h44
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;
};
}