📄 sdl_sysaudio.h
字号:
/* SDL - Simple DirectMedia Layer Copyright (C) 1997-2004 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Sam Lantinga slouken@libsdl.org*/#ifdef SAVE_RCSIDstatic char rcsid = "@(#) $Id: SDL_sysaudio.h,v 1.4 2005/01/17 20:46:08 wmaycisco Exp $";#endif#ifndef _SDL_sysaudio_h#define _SDL_sysaudio_h/* The SDL audio driver */typedef struct SDL_AudioDevice SDL_AudioDevice;/* Define the SDL audio driver structure */#define _THIS SDL_AudioDevice *_this#ifndef _STATUS#define _STATUS SDL_status *status#endifstruct SDL_AudioDevice { /* * * */ /* The name of this audio driver */ const char *name; /* * * */ /* The description of this audio driver */ const char *desc; /* * * */ /* Public driver functions */ int (*OpenAudio)(_THIS, SDL_AudioSpec *spec); void (*ThreadInit)(_THIS); /* Called by audio thread at start */ void (*WaitAudio)(_THIS); void (*PlayAudio)(_THIS); Uint8 *(*GetAudioBuf)(_THIS); void (*WaitDone)(_THIS); void (*CloseAudio)(_THIS); int (*AudioDelay)(_THIS); /* * * */ /* Lock / Unlock functions added for the Mac port */ void (*LockAudio)(_THIS); void (*UnlockAudio)(_THIS); /* * * */ /* Data common to all devices */ /* The current audio specification (shared with audio thread) */ SDL_AudioSpec spec; /* An audio conversion block for audio format emulation */ SDL_AudioCVT convert; /* Current state flags */ int enabled; int paused; int opened; /* Fake audio buffer for when the audio hardware is busy */ Uint8 *fake_stream; /* A semaphore for locking the mixing buffers */ SDL_mutex *mixer_lock; /* A thread to feed the audio device */ SDL_Thread *thread; Uint32 threadid; /* * * */ /* Data private to this driver */ struct SDL_PrivateAudioData *hidden; /* * * */ /* The function used to dispose of this structure */ void (*free)(_THIS); Uint32 mixbuffer_length; // for hardware based audio, after mixer};#undef _THIStypedef struct AudioBootStrap { const char *name; const char *desc; int (*available)(void); SDL_AudioDevice *(*create)(int devindex);} AudioBootStrap;#ifdef OPENBSD_AUDIO_SUPPORTextern AudioBootStrap OPENBSD_AUDIO_bootstrap_ours;#endif#ifdef OSS_SUPPORTextern AudioBootStrap DSP_bootstrap_ours;extern AudioBootStrap DMA_bootstrap_ours;#endif#ifdef ALSA_SUPPORTextern AudioBootStrap ALSA_bootstrap_ours;#endif#ifdef QNXNTOAUDIO_SUPPORTextern AudioBootStrap QNXNTOAUDIO_bootstrap_ours;#endif#ifdef SUNAUDIO_SUPPORTextern AudioBootStrap SUNAUDIO_bootstrap_ours;#endif#ifdef DMEDIA_SUPPORTextern AudioBootStrap DMEDIA_bootstrap_ours;#endif#ifdef ARTSC_SUPPORTextern AudioBootStrap ARTSC_bootstrap_ours;#endif#ifdef ESD_SUPPORTextern AudioBootStrap ESD_bootstrap_ours;#endif#ifdef NAS_SUPPORTextern AudioBootStrap NAS_bootstrap_ours;#endif#ifdef ENABLE_DIRECTXextern AudioBootStrap DSOUND_bootstrap_ours;#endif#ifdef ENABLE_WINDIBextern AudioBootStrap WAVEOUT_bootstrap_ours;#endif#ifdef _AIXextern AudioBootStrap Paud_bootstrap_ours;#endif#ifdef __BEOS__extern AudioBootStrap BAUDIO_bootstrap_ours;#endif#ifdef MACOSXextern AudioBootstrap COREAUDIO_bootstrap;#endif#if defined(macintosh) || TARGET_API_MAC_CARBONextern AudioBootStrap SNDMGR_bootstrap_ours;#endif#ifdef ENABLE_AHIextern AudioBootStrap AHI_bootstrap_ours;#endif#ifdef MINTAUDIO_SUPPORTextern AudioBootStrap MINTAUDIO_GSXB_bootstrap_ours;extern AudioBootStrap MINTAUDIO_MCSN_bootstrap_ours;extern AudioBootStrap MINTAUDIO_STFA_bootstrap_ours;extern AudioBootStrap MINTAUDIO_XBIOS_bootstrap_ours;extern AudioBootStrap MINTAUDIO_DMA8_bootstrap_ours;#endif#ifdef DISKAUD_SUPPORTextern AudioBootStrap DISKAUD_bootstrap_ours;#endif#ifdef ENABLE_DCextern AudioBootStrap DCAUD_bootstrap_ours;#endif#ifdef DRENDERER_SUPPORTextern AudioBootStrap DRENDERER_bootstrap_ours;#endif#ifdef MMEAUDIO_SUPPORTextern AudioBootStrap MMEAUDIO_bootstrap_ours;#endif/* This is the current audio device */extern SDL_AudioDevice *current_audio;#endif /* _SDL_sysaudio_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -