Mercurial > sdl-ios-xcode
annotate src/audio/SDL_sysaudio.h @ 1135:cf6133247d34
Mac Classic and CodeWarrior patches.
--ryan.
From: =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb@algonet.se>
Subject: Re: [SDL] Updated Mac patch
Date: Tue, 6 Sep 2005 15:21:27 +0200
To: A list for developers using the SDL library <sdl@libsdl.org>
Earlier, I wrote:
> Updated the previous Mac patch to disable Carbon by default.
> Also "fixed" the SDL.spec again, so that it builds on Darwin.
>
> http://www.algonet.se/~afb/SDL-1.2.9-mac.patch
> Also applied fine to SDL12 CVS, when I tried it.
>
> Haven't completed any new packaging or projects for Xcode/PB,
> but it seems to build and install fine here (in development).
Tested the new patch to build with old CodeWarrior and MPW,
and it seems it needed some hacks with those old headers...
Just in case you want to support the archeological versions -
here is a small add-on to the above patch, to fix those...
http://www.algonet.se/~afb/SDL-1.2.9-classic.patch
I couldn't get the old CW5 projects to build without a few
modifications - such as deleting the stray old header in:
"CWprojects/Support/Carbon/Include/ConditionalMacros.h" ?
But I updated both projects to CW6 too and built for Carbon,
and it ran all of the Mac test projects without any problems.
The MPW file seems to have compiled, with a small order change.
As long as you're still shipping the CWProjects and MPWmake
with the download, they should probably be updated/fixed ?
(another "solution" would of course be to just delete them)
I'll post my new projects along with the new Xcode projects
later on, along with XML exports of the various .mcp files.
(CW5 builds for Classic / "PPC", and CW6 builds for Carbon)
It'll be packaged as a part of the next SpriteWorld X release...
http://spriteworldx.sourceforge.net/ [Classic/Carbon/Win/X11]
--anders
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Thu, 08 Sep 2005 06:34:28 +0000 |
parents | 84f930aebaeb |
children | 173c063d4f55 |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
769
b8d311d90021
Updated copyright information for 2004 (Happy New Year!)
Sam Lantinga <slouken@libsdl.org>
parents:
663
diff
changeset
|
3 Copyright (C) 1997-2004 Sam Lantinga |
0 | 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 | |
252
e8157fcb3114
Updated the source with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
148
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
22 | |
23 #ifdef SAVE_RCSID | |
24 static char rcsid = | |
25 "@(#) $Id$"; | |
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 /* * * */ | |
322
fd93a09655e3
The audio lock and unlock functions are now a part of the driver.
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
62 /* Lock / Unlock functions added for the Mac port */ |
fd93a09655e3
The audio lock and unlock functions are now a part of the driver.
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
63 void (*LockAudio)(_THIS); |
fd93a09655e3
The audio lock and unlock functions are now a part of the driver.
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
64 void (*UnlockAudio)(_THIS); |
fd93a09655e3
The audio lock and unlock functions are now a part of the driver.
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
65 |
fd93a09655e3
The audio lock and unlock functions are now a part of the driver.
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
66 /* * * */ |
0 | 67 /* Data common to all devices */ |
68 | |
69 /* The current audio specification (shared with audio thread) */ | |
70 SDL_AudioSpec spec; | |
71 | |
72 /* An audio conversion block for audio format emulation */ | |
73 SDL_AudioCVT convert; | |
74 | |
75 /* Current state flags */ | |
76 int enabled; | |
77 int paused; | |
78 int opened; | |
79 | |
80 /* Fake audio buffer for when the audio hardware is busy */ | |
81 Uint8 *fake_stream; | |
82 | |
83 /* A semaphore for locking the mixing buffers */ | |
84 SDL_mutex *mixer_lock; | |
85 | |
86 /* A thread to feed the audio device */ | |
87 SDL_Thread *thread; | |
88 Uint32 threadid; | |
89 | |
90 /* * * */ | |
91 /* Data private to this driver */ | |
92 struct SDL_PrivateAudioData *hidden; | |
93 | |
94 /* * * */ | |
95 /* The function used to dispose of this structure */ | |
96 void (*free)(_THIS); | |
97 }; | |
98 #undef _THIS | |
99 | |
100 typedef struct AudioBootStrap { | |
101 const char *name; | |
102 const char *desc; | |
103 int (*available)(void); | |
104 SDL_AudioDevice *(*create)(int devindex); | |
105 } AudioBootStrap; | |
106 | |
121
43febd46d49d
Name changed from OBSD to OPENBSD_AUDIO
Sam Lantinga <slouken@libsdl.org>
parents:
94
diff
changeset
|
107 #ifdef OPENBSD_AUDIO_SUPPORT |
43febd46d49d
Name changed from OBSD to OPENBSD_AUDIO
Sam Lantinga <slouken@libsdl.org>
parents:
94
diff
changeset
|
108 extern AudioBootStrap OPENBSD_AUDIO_bootstrap; |
94
ae6e6b73333f
Cleaned up the OpenBSD port, thanks to Peter Valchev
Sam Lantinga <slouken@lokigames.com>
parents:
68
diff
changeset
|
109 #endif |
0 | 110 #ifdef OSS_SUPPORT |
111 extern AudioBootStrap DSP_bootstrap; | |
112 extern AudioBootStrap DMA_bootstrap; | |
113 #endif | |
114 #ifdef ALSA_SUPPORT | |
115 extern AudioBootStrap ALSA_bootstrap; | |
116 #endif | |
663
8bedd6d61642
Date: Sat, 2 Aug 2003 16:22:51 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
654
diff
changeset
|
117 #ifdef QNXNTOAUDIO_SUPPORT |
8bedd6d61642
Date: Sat, 2 Aug 2003 16:22:51 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
654
diff
changeset
|
118 extern AudioBootStrap QNXNTOAUDIO_bootstrap; |
8bedd6d61642
Date: Sat, 2 Aug 2003 16:22:51 +0300
Sam Lantinga <slouken@libsdl.org>
parents:
654
diff
changeset
|
119 #endif |
148
8758b8d42cd9
Audio subsystem no longer assumes sun audio API on UNIX systems
Sam Lantinga <slouken@libsdl.org>
parents:
121
diff
changeset
|
120 #ifdef SUNAUDIO_SUPPORT |
8758b8d42cd9
Audio subsystem no longer assumes sun audio API on UNIX systems
Sam Lantinga <slouken@libsdl.org>
parents:
121
diff
changeset
|
121 extern AudioBootStrap SUNAUDIO_bootstrap; |
8758b8d42cd9
Audio subsystem no longer assumes sun audio API on UNIX systems
Sam Lantinga <slouken@libsdl.org>
parents:
121
diff
changeset
|
122 #endif |
8758b8d42cd9
Audio subsystem no longer assumes sun audio API on UNIX systems
Sam Lantinga <slouken@libsdl.org>
parents:
121
diff
changeset
|
123 #ifdef DMEDIA_SUPPORT |
8758b8d42cd9
Audio subsystem no longer assumes sun audio API on UNIX systems
Sam Lantinga <slouken@libsdl.org>
parents:
121
diff
changeset
|
124 extern AudioBootStrap DMEDIA_bootstrap; |
35
d3bc792e136d
Added detection of Open Sound System on Solaris x86
Sam Lantinga <slouken@lokigames.com>
parents:
21
diff
changeset
|
125 #endif |
0 | 126 #ifdef ARTSC_SUPPORT |
127 extern AudioBootStrap ARTSC_bootstrap; | |
128 #endif | |
129 #ifdef ESD_SUPPORT | |
130 extern AudioBootStrap ESD_bootstrap; | |
131 #endif | |
132 #ifdef NAS_SUPPORT | |
133 extern AudioBootStrap NAS_bootstrap; | |
134 #endif | |
135 #ifdef ENABLE_DIRECTX | |
136 extern AudioBootStrap DSOUND_bootstrap; | |
137 #endif | |
138 #ifdef ENABLE_WINDIB | |
139 extern AudioBootStrap WAVEOUT_bootstrap; | |
140 #endif | |
21
75a95f82bc1f
Updated the Amiga OS port of SDL (thanks Gabriele)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
141 #ifdef _AIX |
75a95f82bc1f
Updated the Amiga OS port of SDL (thanks Gabriele)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
142 extern AudioBootStrap Paud_bootstrap; |
75a95f82bc1f
Updated the Amiga OS port of SDL (thanks Gabriele)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
143 #endif |
0 | 144 #ifdef __BEOS__ |
145 extern AudioBootStrap BAUDIO_bootstrap; | |
146 #endif | |
936
84f930aebaeb
CoreAudio driver works on Mac OSX 10.1
Sam Lantinga <slouken@libsdl.org>
parents:
935
diff
changeset
|
147 #ifdef MACOSX |
935
f8d5ddc7aef1
Audio improvements from Max Horn, including a new CoreAudio driver for MacOSX
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
148 extern AudioBootStrap COREAUDIO_bootstrap; |
f8d5ddc7aef1
Audio improvements from Max Horn, including a new CoreAudio driver for MacOSX
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
149 #endif |
0 | 150 #if defined(macintosh) || TARGET_API_MAC_CARBON |
151 extern AudioBootStrap SNDMGR_bootstrap; | |
152 #endif | |
21
75a95f82bc1f
Updated the Amiga OS port of SDL (thanks Gabriele)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
153 #ifdef ENABLE_AHI |
75a95f82bc1f
Updated the Amiga OS port of SDL (thanks Gabriele)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
154 extern AudioBootStrap AHI_bootstrap; |
0 | 155 #endif |
398
d219b0e02f5f
Added Atari audio support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
322
diff
changeset
|
156 #ifdef MINTAUDIO_SUPPORT |
644
594422ab8f9f
Atari MiNT: added more audio drivers
Patrice Mandin <patmandin@gmail.com>
parents:
630
diff
changeset
|
157 extern AudioBootStrap MINTAUDIO_GSXB_bootstrap; |
594422ab8f9f
Atari MiNT: added more audio drivers
Patrice Mandin <patmandin@gmail.com>
parents:
630
diff
changeset
|
158 extern AudioBootStrap MINTAUDIO_MCSN_bootstrap; |
594422ab8f9f
Atari MiNT: added more audio drivers
Patrice Mandin <patmandin@gmail.com>
parents:
630
diff
changeset
|
159 extern AudioBootStrap MINTAUDIO_STFA_bootstrap; |
594422ab8f9f
Atari MiNT: added more audio drivers
Patrice Mandin <patmandin@gmail.com>
parents:
630
diff
changeset
|
160 extern AudioBootStrap MINTAUDIO_XBIOS_bootstrap; |
594422ab8f9f
Atari MiNT: added more audio drivers
Patrice Mandin <patmandin@gmail.com>
parents:
630
diff
changeset
|
161 extern AudioBootStrap MINTAUDIO_DMA8_bootstrap; |
398
d219b0e02f5f
Added Atari audio support (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
322
diff
changeset
|
162 #endif |
68
ac6645260d31
Added an audio driver that writes to disk (thanks Ryan!)
Sam Lantinga <slouken@lokigames.com>
parents:
37
diff
changeset
|
163 #ifdef DISKAUD_SUPPORT |
ac6645260d31
Added an audio driver that writes to disk (thanks Ryan!)
Sam Lantinga <slouken@lokigames.com>
parents:
37
diff
changeset
|
164 extern AudioBootStrap DISKAUD_bootstrap; |
ac6645260d31
Added an audio driver that writes to disk (thanks Ryan!)
Sam Lantinga <slouken@lokigames.com>
parents:
37
diff
changeset
|
165 #endif |
509
dad72daf44b3
Added initial support for Dreamcast (thanks HERO!)
Sam Lantinga <slouken@libsdl.org>
parents:
398
diff
changeset
|
166 #ifdef ENABLE_DC |
dad72daf44b3
Added initial support for Dreamcast (thanks HERO!)
Sam Lantinga <slouken@libsdl.org>
parents:
398
diff
changeset
|
167 extern AudioBootStrap DCAUD_bootstrap; |
dad72daf44b3
Added initial support for Dreamcast (thanks HERO!)
Sam Lantinga <slouken@libsdl.org>
parents:
398
diff
changeset
|
168 #endif |
630
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
509
diff
changeset
|
169 #ifdef DRENDERER_SUPPORT |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
509
diff
changeset
|
170 extern AudioBootStrap DRENDERER_bootstrap; |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
509
diff
changeset
|
171 #endif |
654
e92bcf2573cb
Added audio and CD-ROM support for OSF/Tru64 (thanks Hayashi!)
Sam Lantinga <slouken@libsdl.org>
parents:
644
diff
changeset
|
172 #ifdef MMEAUDIO_SUPPORT |
e92bcf2573cb
Added audio and CD-ROM support for OSF/Tru64 (thanks Hayashi!)
Sam Lantinga <slouken@libsdl.org>
parents:
644
diff
changeset
|
173 extern AudioBootStrap MMEAUDIO_bootstrap; |
e92bcf2573cb
Added audio and CD-ROM support for OSF/Tru64 (thanks Hayashi!)
Sam Lantinga <slouken@libsdl.org>
parents:
644
diff
changeset
|
174 #endif |
0 | 175 |
176 /* This is the current audio device */ | |
177 extern SDL_AudioDevice *current_audio; | |
178 | |
179 #endif /* _SDL_sysaudio_h */ |