From aa9393254a8a9deec3db5b17539a9be273965b07 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 28 May 2018 17:01:54 +0800 Subject: =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=9F=B3=E9=A2=91=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/audio/sdl/source.h | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'src/libjin/audio/sdl/source.h') diff --git a/src/libjin/audio/sdl/source.h b/src/libjin/audio/sdl/source.h index d97590e..29a3676 100644 --- a/src/libjin/audio/sdl/source.h +++ b/src/libjin/audio/sdl/source.h @@ -35,10 +35,10 @@ namespace audio void pause() override; void resume() override; void rewind() override; - void isStopped() const override; - void isPaused() const override; - void isFinished() const override; + 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; @@ -50,25 +50,29 @@ namespace audio void loadWAV(void* mem, int size); void loadOGG(void* mem, int size); - inline bool is(int state) { return (status & state) == state; } + inline bool is(int state) const { return (status.state & state) == state; } struct { - const void* data; // 音频数据 - int length; // data字节长度 - void* end; // data结尾 = (unsigned char*)data + length + const void* data; // 音频数据 + int size; // data字节长度 + const void* end; // data结尾 = (unsigned char*)data + size int rate; // 采样频率 unsigned char bitdepth; // 每个sample的比特长度 - int samples; // sample数 = length / (bitdepth / 8) + int samples; // sample数 = size / (bitdepth / 8) unsigned char channel; // channel数1或2 char silence; // 0 } raw; /* Procedure controller variable */ - int pos; // 当前播放的位置 - int pitch; // pitch - int status; // 当前状态 - bool loop; // loop or not + struct + { + int pos; // 当前播放的位置 + int pitch; // pitch + int state; // 当前状态 + bool loop; // loop or not + int volume; // 音量 + } status; }; -- cgit v1.1-26-g67d0