From 5e4a2c8fa58f30a93506c1db21aa7a9921c0affc Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 7 Sep 2018 00:27:46 +0800 Subject: *format source code --- src/libjin/Audio/SDL/SDLSource.h | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'src/libjin/Audio/SDL/SDLSource.h') diff --git a/src/libjin/Audio/SDL/SDLSource.h b/src/libjin/Audio/SDL/SDLSource.h index c45d7e5..a99f65e 100644 --- a/src/libjin/Audio/SDL/SDLSource.h +++ b/src/libjin/Audio/SDL/SDLSource.h @@ -20,14 +20,11 @@ namespace audio class SDLSource : public Source { - public: - - ~SDLSource(); - static SDLSource* createSource(const char* file); static SDLSource* createSource(void* mem, size_t size); + ~SDLSource(); /* ISource interface */ void play() override; void stop() override; @@ -37,25 +34,22 @@ namespace audio bool isStopped() const override; bool isPaused() const override; void setPitch(float pitch) override; - // 调整上界 void setVolume(float volume) override; bool setLoop(bool loop) override; void setRate(float rate) override; - + /* handle and process anduio clip */ inline void handle(SDLSourceManager* manager, SDLSourceCommand* cmd); inline void process(void* buffer, size_t size); protected: - SDLSource(); - + /* decode raw audio data */ void decode_wav(void* mem, int size); void decode_ogg(void* mem, int size); - + /* check state */ inline bool is(int state) const { return (status.state & state) == state; } - struct - { + struct{ const void* data; // 音频数据 int length; // data字节长度 const void* end; // data结尾 = (unsigned char*)data + size @@ -64,10 +58,8 @@ namespace audio int samples; // sample数 = size / (bitdepth / 8) unsigned char channels; // channel数1(mono)或2(stereo) } raw; - /* Procedure controller variable */ - struct - { + struct{ int pos; // 当前播放的sample int pitch; // pitch int state; // 当前状态 @@ -79,15 +71,13 @@ namespace audio class SDLSourceManager { - public: - static SDLSourceManager* get(); /* Process function */ void processCommands(); void processSources(void* buffer, size_t size); - + /* control flow */ void removeAllSource(); void removeSource(SDLSource* source); void pushSource(SDLSource* source); @@ -95,7 +85,6 @@ namespace audio void pushCommand(SDLSourceCommand* cmd); private : - std::queue commands; std::stack commandsPool; std::vector sources; // processing sources -- cgit v1.1-26-g67d0