From 1deb2a5f8a1c9b44ad38eea73449250d46ec0ce7 Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 21 May 2018 23:33:33 +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/audio.h | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/libjin/audio/sdl/audio.h') diff --git a/src/libjin/audio/sdl/audio.h b/src/libjin/audio/sdl/audio.h index 920f56a..969fbd9 100644 --- a/src/libjin/audio/sdl/audio.h +++ b/src/libjin/audio/sdl/audio.h @@ -1,6 +1,7 @@ #ifndef __JIN_AUDIO_SDL_H #define __JIN_AUDIO_SDL_H +#include #include "../audio.h" namespace jin @@ -8,23 +9,21 @@ namespace jin namespace audio { + class SDLSource; + class SDLAudio : public Audio { - - public: - + + public: + struct Setting : SettingBase { int rate; // 采样率 int resolution; // 分辨率 char channels; // 声道数 int samples; // 取样数 - SDL_AudioCallback callback; // 音频回调 - void* userdata; // 自定义参数 }; - static void defaultCallback(void *udata, Uint8 *stream, int len); - static inline Audio* get() { return audio != NULL ? audio : (audio = new SDLAudio()); @@ -41,7 +40,7 @@ namespace audio void setVolume(float volume) override; float getVolume() override; - private: + private: SDLAudio() {} ~SDLAudio() {} @@ -49,6 +48,16 @@ namespace audio onlyonce bool _init(const SettingBase* setting) override; onlyonce void _quit() override; + unsigned int audioDevice; + + std::vector sources; + + static void defaultCallback(void *udata, Uint8 *stream, int len); + + /* process functions*/ + void processCommands(); + void processSources(int len); + }; typedef SDLAudio::Setting SDLAudioSetting; -- cgit v1.1-26-g67d0