From 51ba9cb2a6b0b9395a2912eadeb954c95e4c1d3c Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 20 May 2018 23:37:11 +0800 Subject: =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/audio/audio.h | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'src/libjin/audio/audio.h') diff --git a/src/libjin/audio/audio.h b/src/libjin/audio/audio.h index fd4ab69..80e463f 100644 --- a/src/libjin/audio/audio.h +++ b/src/libjin/audio/audio.h @@ -1,5 +1,8 @@ #ifndef __JIN_AUDIO_H #define __JIN_AUDIO_H + +#include + #include "../utils/macros.h" #include "../common/subsystem.h" @@ -11,15 +14,36 @@ namespace audio class Audio : public common::Subsystem { public: + struct Setting : SettingBase { - + int freq; + int format; + char channels; + int samples; + SDL_AudioCallback callback; + void* userdata; }; + + bool init(const SettingBase* setting) override; + void quit() override; - private: + static inline Audio* get() + { + return (audio == NULL ? (audio = new Audio()) : audio); + } - onlyonce bool _init(const SettingBase* setting) override; + static void defaultCallback(void *udata, Uint8 *stream, int len); + private: + + Audio() {}; + ~Audio() {}; + + static Audio* audio; + + onlyonce bool _init(const SettingBase* setting) override; + onlyonce void _quit() override; }; typedef Audio::Setting AudioSetting; -- cgit v1.1-26-g67d0