annotate src/audio/pulse/SDL_pulseaudio.h @ 4322:a8e5b518e194 SDL-1.2

Forcibly disabled MMX mixers. Hopefully fixes Bugzilla #649.
author Ryan C. Gordon <icculus@icculus.org>
date Mon, 12 Oct 2009 08:58:12 +0000
parents 5b99971a27b4
children fe15c4e8efe6
rev   line source
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
1 /*
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
4159
a1b03ba2fcd0 Updated copyright date
Sam Lantinga <slouken@libsdl.org>
parents: 3939
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
4
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
6 modify it under the terms of the GNU Lesser General Public
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
9
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
13 Lesser General Public License for more details.
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
14
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
15 You should have received a copy of the GNU Lesser General Public
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
16 License along with this library; if not, write to the Free Software
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
18
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
19 Stéphan Kochen
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
20 stephan@kochen.nl
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
21
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
22 Based on parts of the ALSA and ESounD output drivers.
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
23 */
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
24 #include "SDL_config.h"
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
25
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
26 #ifndef _SDL_pulseaudio_h
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
27 #define _SDL_pulseaudio_h
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
28
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
29 #include "../SDL_sysaudio.h"
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
30
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
31 /* Hidden "this" pointer for the video functions */
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
32 #define _THIS SDL_AudioDevice *this
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
33
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
34 struct SDL_PrivateAudioData {
4216
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
35 pa_mainloop *mainloop;
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
36 pa_mainloop_api *mainloop_api;
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
37 pa_context *context;
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
38 pa_stream *stream;
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
39
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
40 /* Raw mixing buffer */
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
41 Uint8 *mixbuf;
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
42 int mixlen;
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
43 };
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
44
4216
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
45 #if (PA_API_VERSION < 12)
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
46 /** Return non-zero if the passed state is one of the connected states */
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
47 static inline int PA_CONTEXT_IS_GOOD(pa_context_state_t x) {
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
48 return
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
49 x == PA_CONTEXT_CONNECTING ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
50 x == PA_CONTEXT_AUTHORIZING ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
51 x == PA_CONTEXT_SETTING_NAME ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
52 x == PA_CONTEXT_READY;
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
53 }
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
54 /** Return non-zero if the passed state is one of the connected states */
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
55 static inline int PA_STREAM_IS_GOOD(pa_stream_state_t x) {
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
56 return
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
57 x == PA_STREAM_CREATING ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
58 x == PA_STREAM_READY;
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
59 }
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
60 #endif /* pulseaudio <= 0.9.10 */
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
61
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
62 /* Old variable names */
4216
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
63 #define mainloop (this->hidden->mainloop)
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
64 #define mainloop_api (this->hidden->mainloop_api)
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
65 #define context (this->hidden->context)
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
66 #define stream (this->hidden->stream)
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
67 #define mixbuf (this->hidden->mixbuf)
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
68 #define mixlen (this->hidden->mixlen)
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
69
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
70 #endif /* _SDL_pulseaudio_h */
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
71