annotate src/audio/pulse/SDL_pulseaudio.h @ 4547:963f939494a1 SDL-1.2

RedHat patch: SDL-1.2.14-audiodriver.patch
author Sam Lantinga <slouken@libsdl.org>
date Sun, 18 Jul 2010 11:12:27 -0700
parents fe15c4e8efe6
children
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
4398
fe15c4e8efe6 1.2: let PulseAudio hook into SDL_WM_SetCaption().
Ryan C. Gordon <icculus@icculus.org>
parents: 4216
diff changeset
40 char *caption;
fe15c4e8efe6 1.2: let PulseAudio hook into SDL_WM_SetCaption().
Ryan C. Gordon <icculus@icculus.org>
parents: 4216
diff changeset
41
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
42 /* Raw mixing buffer */
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
43 Uint8 *mixbuf;
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
44 int mixlen;
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
45 };
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
46
4216
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
47 #if (PA_API_VERSION < 12)
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
48 /** 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
49 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
50 return
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
51 x == PA_CONTEXT_CONNECTING ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
52 x == PA_CONTEXT_AUTHORIZING ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
53 x == PA_CONTEXT_SETTING_NAME ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
54 x == PA_CONTEXT_READY;
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
55 }
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
56 /** 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
57 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
58 return
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
59 x == PA_STREAM_CREATING ||
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
60 x == PA_STREAM_READY;
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
61 }
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
62 #endif /* pulseaudio <= 0.9.10 */
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
63
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
64 /* Old variable names */
4216
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
65 #define mainloop (this->hidden->mainloop)
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
66 #define mainloop_api (this->hidden->mainloop_api)
5b99971a27b4 Fixed bug #698
Sam Lantinga <slouken@libsdl.org>
parents: 4159
diff changeset
67 #define context (this->hidden->context)
3939
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
68 #define stream (this->hidden->stream)
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
69 #define mixbuf (this->hidden->mixbuf)
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
70 #define mixlen (this->hidden->mixlen)
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
71
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
72 #endif /* _SDL_pulseaudio_h */
42e83d81224b Committed PulseAudio driver. Thanks, Stephan!
Ryan C. Gordon <icculus@icculus.org>
parents:
diff changeset
73