src/audio/SDL_sysaudio.h

/* [<][>][^][v][top]
[bottom][index][help] */

FUNCTIONS

This source file includes following functions.

   1 /*
   2     SDL - Simple DirectMedia Layer
   3     Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
   4 
   5     This library is free software; you can redistribute it and/or
   6     modify it under the terms of the GNU Library General Public
   7     License as published by the Free Software Foundation; either
   8     version 2 of the License, or (at your option) any later version.
   9 
  10     This library is distributed in the hope that it will be useful,
  11     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13     Library General Public License for more details.
  14 
  15     You should have received a copy of the GNU Library General Public
  16     License along with this library; if not, write to the Free
  17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  18 
  19     Sam Lantinga
  20     slouken@devolution.com
  21 */
  22 
  23 #ifdef SAVE_RCSID
  24 static char rcsid =
  25  "@(#) $Id: SDL_sysaudio.h,v 1.6.2.17 2001/03/21 17:19:56 hercules Exp $";
  26 #endif
  27 
  28 #ifndef _SDL_sysaudio_h
  29 #define _SDL_sysaudio_h
  30 
  31 #include "SDL_mutex.h"
  32 #include "SDL_thread.h"
  33 
  34 /* The SDL audio driver */
  35 typedef struct SDL_AudioDevice SDL_AudioDevice;
  36 
  37 /* Define the SDL audio driver structure */
  38 #define _THIS   SDL_AudioDevice *_this
  39 #ifndef _STATUS
  40 #define _STATUS SDL_status *status
  41 #endif
  42 struct SDL_AudioDevice {
  43         /* * * */
  44         /* The name of this audio driver */
  45         const char *name;
  46 
  47         /* * * */
  48         /* The description of this audio driver */
  49         const char *desc;
  50 
  51         /* * * */
  52         /* Public driver functions */
  53         int  (*OpenAudio)(_THIS, SDL_AudioSpec *spec);
  54         void (*ThreadInit)(_THIS);      /* Called by audio thread at start */
  55         void (*WaitAudio)(_THIS);
  56         void (*PlayAudio)(_THIS);
  57         Uint8 *(*GetAudioBuf)(_THIS);
  58         void (*WaitDone)(_THIS);
  59         void (*CloseAudio)(_THIS);
  60 
  61         /* * * */
  62         /* Data common to all devices */
  63 
  64         /* The current audio specification (shared with audio thread) */
  65         SDL_AudioSpec spec;
  66 
  67         /* An audio conversion block for audio format emulation */
  68         SDL_AudioCVT convert;
  69 
  70         /* Current state flags */
  71         int enabled;
  72         int paused;
  73         int opened;
  74 
  75         /* Fake audio buffer for when the audio hardware is busy */
  76         Uint8 *fake_stream;
  77 
  78         /* A semaphore for locking the mixing buffers */
  79         SDL_mutex *mixer_lock;
  80 
  81         /* A thread to feed the audio device */
  82         SDL_Thread *thread;
  83         Uint32 threadid;
  84 
  85         /* * * */
  86         /* Data private to this driver */
  87         struct SDL_PrivateAudioData *hidden;
  88 
  89         /* * * */
  90         /* The function used to dispose of this structure */
  91         void (*free)(_THIS);
  92 };
  93 #undef _THIS
  94 
  95 typedef struct AudioBootStrap {
  96         const char *name;
  97         const char *desc;
  98         int (*available)(void);
  99         SDL_AudioDevice *(*create)(int devindex);
 100 } AudioBootStrap;
 101 
 102 #if defined(unix) && \
 103    !defined(linux) && !defined(__FreeBSD__) && !defined(__CYGWIN32__) \
 104    && !defined(__bsdi__)
 105 extern AudioBootStrap AUDIO_bootstrap;
 106 #endif
 107 #ifdef OSS_SUPPORT
 108 extern AudioBootStrap DSP_bootstrap;
 109 extern AudioBootStrap DMA_bootstrap;
 110 #endif
 111 #ifdef ALSA_SUPPORT
 112 extern AudioBootStrap ALSA_bootstrap;
 113 #endif
 114 #ifdef ARTSC_SUPPORT
 115 extern AudioBootStrap ARTSC_bootstrap;
 116 #endif
 117 #ifdef ESD_SUPPORT
 118 extern AudioBootStrap ESD_bootstrap;
 119 #endif
 120 #ifdef NAS_SUPPORT
 121 extern AudioBootStrap NAS_bootstrap;
 122 #endif
 123 #ifdef ENABLE_DIRECTX
 124 extern AudioBootStrap DSOUND_bootstrap;
 125 #endif
 126 #ifdef ENABLE_WINDIB
 127 extern AudioBootStrap WAVEOUT_bootstrap;
 128 #endif
 129 #ifdef __BEOS__
 130 extern AudioBootStrap BAUDIO_bootstrap;
 131 #endif
 132 #if defined(macintosh) || TARGET_API_MAC_CARBON
 133 extern AudioBootStrap SNDMGR_bootstrap;
 134 #endif
 135 #ifdef _AIX
 136 extern AudioBootStrap Paud_bootstrap;
 137 #endif
 138 
 139 /* This is the current audio device */
 140 extern SDL_AudioDevice *current_audio;
 141 
 142 #endif /* _SDL_sysaudio_h */

/* [<][>][^][v][top][bottom][index][help] */