Mercurial > sdl-ios-xcode
view src/audio/mint/SDL_mintaudio_gsxb.h @ 968:4675910b0b7b
Date: Mon, 11 Oct 2004 15:17:27 +0300 (EEST)
From: Hannu Savolainen
Subject: Re: SDL uses obsolete OSS features
I did some work on getting OSS to work better with SDL. There have been
some problems with select which should be fixed now.
I'm having some problems in understanding what is the purpose of the
DSP_WaitAudio() routine. I added a return to the very beginning of this
routine and commendted out the define for USE_BLOCKING_WRITES. At least
lbreakout2 seems to work as well as earlier. The latencies are the same.
An ordinary blocking write does exactly the same thing than DSP_WaitAudio
does. So I would recommend using the USE_BLOCKING_WRITES approach and
removing everything from the DSP_WaitAudio routine. Also enabling
USE_BLOCKING_WRITES makes it possible to simplify DSP_PlayAudio() because
you don't need to handle the partial writes (the do-while loop).
Attached is a patch against SDL-1.2.7. After these changes SDL will use
OSS as it's designed to be used (make it as simple as possible). This code
should work with all OSS implementations because it uses only the very
fundamental features that have been there since the jurassic times.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 12 Nov 2004 21:39:04 +0000 |
parents | 594422ab8f9f |
children | d910939febfa |
line wrap: on
line source
/* * GSXB audio definitions * * Patrice Mandin */ #ifndef _SDL_mintaudio_gsxb_h #define _SDL_mintaudio_gsxb_h #include <mint/falcon.h> /* for trap_14_xxx macros */ /* GSXB Cookie */ #define C_GSXB 0x47535842L /* Bit 5 in cookie _SND */ #define SND_GSXB (1<<5) /* NSoundcmd modes */ #define SETRATE 7 /* Set sample rate */ #define SET8BITFORMAT 8 /* 8 bits format */ #define SET16BITFORMAT 9 /* 16 bits format */ #define SET24BITFORMAT 10 /* 24 bits format */ #define SET32BITFORMAT 11 /* 32 bits format */ #define LTATTEN_MASTER 12 /* Attenuation */ #define RTATTEN_MASTER 13 #define LTATTEN_MICIN 14 #define RTATTEN_MICIN 15 #define LTATTEN_FMGEN 16 #define RTATTEN_FMGEN 17 #define LTATTEN_LINEIN 18 #define RTATTEN_LINEIN 19 #define LTATTEN_CDIN 20 #define RTATTEN_CDIN 21 #define LTATTEN_VIDIN 22 #define RTATTEN_VIDIN 23 #define LTATTEN_AUXIN 24 #define RTATTEN_AUXIN 25 /* Setmode modes */ #define MONO16 3 #define STEREO24 4 #define STEREO32 5 #define MONO24 6 #define MONO32 7 /* Sndstatus modes */ #define SND_QUERYFORMATS 2 #define SND_QUERYMIXERS 3 #define SND_QUERYSOURCES 4 #define SND_QUERYDUPLEX 5 #define SND_QUERY8BIT 8 #define SND_QUERY16BIT 9 #define SND_QUERY24BIT 10 #define SND_QUERY32BIT 11 #define SND_FORMAT8 (1<<0) #define SND_FORMAT16 (1<<1) #define SND_FORMAT24 (1<<2) #define SND_FORMAT32 (1<<3) #define SND_FORMATSIGNED (1<<0) #define SND_FORMATUNSIGNED (1<<1) #define SND_FORMATBIGENDIAN (1<<2) #define SND_FORMATLITTLEENDIAN (1<<3) /* Devconnect prescalers */ #define CLK_44K 1 #define CLK_22K 3 #define CLK_11K 7 /* Extra xbios functions */ #define NSoundcmd(mode,data,data2) \ (long)trap_14_wwl((short)130,(short)(mode),(short)(data),(long)(data2)) #define NSetinterrupt(src_inter,cause,inth_addr) \ (long)trap_14_wwwl((short)135,(short)(src_inter),(short)(cause), \ (long)(inth_addr)) #endif /* _SDL_mintaudio_gsxb_h */