aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/audio/sdl/source.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-05-21 23:33:33 +0800
committerchai <chaifix@163.com>2018-05-21 23:33:33 +0800
commit1deb2a5f8a1c9b44ad38eea73449250d46ec0ce7 (patch)
tree34ec91e569965762c65bf6e01f854f96720fa3c1 /src/libjin/audio/sdl/source.h
parent628a35692a165cdd6e26fac1beb274f2c7055483 (diff)
更新音频模块
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;
};
}