diff options
author | chai <chaifix@163.com> | 2018-09-07 00:27:46 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-09-07 00:27:46 +0800 |
commit | 5e4a2c8fa58f30a93506c1db21aa7a9921c0affc (patch) | |
tree | 644837c30568296c311eb68b199048ad5f3b8a83 /src/libjin/Audio | |
parent | d395ac00770e1dad6f9a2ba98ef23b8b719d0d16 (diff) |
*format source code
Diffstat (limited to 'src/libjin/Audio')
-rw-r--r-- | src/libjin/Audio/Audio.h | 4 | ||||
-rw-r--r-- | src/libjin/Audio/SDL/SDLAudio.h | 11 | ||||
-rw-r--r-- | src/libjin/Audio/SDL/SDLSource.h | 25 | ||||
-rw-r--r-- | src/libjin/Audio/Source.h | 4 |
4 files changed, 11 insertions, 33 deletions
diff --git a/src/libjin/Audio/Audio.h b/src/libjin/Audio/Audio.h index 255f88b..674020e 100644 --- a/src/libjin/Audio/Audio.h +++ b/src/libjin/Audio/Audio.h @@ -18,9 +18,7 @@ namespace audio template<class SubAudio> class Audio : public Subsystem<SubAudio> { - public: - enum State { PLAY , @@ -35,7 +33,6 @@ namespace audio virtual void setVolume(float volume) = 0; protected: - Audio() : volume(1) , state(State::PLAY) @@ -45,6 +42,7 @@ namespace audio float volume; State state; + }; } // audio diff --git a/src/libjin/Audio/SDL/SDLAudio.h b/src/libjin/Audio/SDL/SDLAudio.h index a8067ba..b43dcfe 100644 --- a/src/libjin/Audio/SDL/SDLAudio.h +++ b/src/libjin/Audio/SDL/SDLAudio.h @@ -18,9 +18,7 @@ namespace audio class SDLAudio : public Audio<SDLAudio> { - public: - struct Setting : SettingBase { public: @@ -34,23 +32,20 @@ namespace audio void pause() override; void resume() override; void setVolume(float volume) override; - /* process functions*/ void processCommands(); void processSources(void* buffer, size_t len); void processBuffer(void* buffer, size_t len); bool goOnProcess(); - + /* thread-safe */ void lock(); void unlock(); private: - + SINGLETON(SDLAudio); SDLAudio() {}; ~SDLAudio() {}; - - SINGLETON(SDLAudio); - + /* subsystem interface */ bool initSystem(const SettingBase* setting) override; void quitSystem() override; 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; // channel1(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<SDLSourceCommand*> commands; std::stack<SDLSourceCommand*> commandsPool; std::vector<SDLSource*> sources; // processing sources diff --git a/src/libjin/Audio/Source.h b/src/libjin/Audio/Source.h index 70d6fae..b8cfb83 100644 --- a/src/libjin/Audio/Source.h +++ b/src/libjin/Audio/Source.h @@ -19,12 +19,9 @@ namespace audio class Source { - public: - Source() {}; virtual ~Source() {}; - /* interface */ virtual void play() = 0; virtual void stop() = 0; @@ -39,7 +36,6 @@ namespace audio virtual void setRate(float rate) = 0; protected: - static SourceType getType(const void* mem, int size); }; |