1 /* 2 SDL - Simple DirectMedia Layer 3 Copyright (C) 1997-2012 Sam Lantinga 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 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 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with this library; if not, write to the Free Software 17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 18 19 Stphan Kochen 20 stephan (at) kochen.nl 21 22 Based on parts of the ALSA and ESounD output drivers. 23 */ 24 #include "SDL_config.h" 25 26 #ifndef _SDL_pulseaudio_h 27 #define _SDL_pulseaudio_h 28 29 #include "../SDL_sysaudio.h" 30 31 /* Hidden "this" pointer for the video functions */ 32 #define _THIS SDL_AudioDevice *this 33 34 struct SDL_PrivateAudioData { 35 pa_mainloop *mainloop; 36 pa_mainloop_api *mainloop_api; 37 pa_context *context; 38 pa_stream *stream; 39 40 char *caption; 41 42 /* Raw mixing buffer */ 43 Uint8 *mixbuf; 44 int mixlen; 45 }; 46 47 #if (PA_API_VERSION < 12) 48 /** Return non-zero if the passed state is one of the connected states */ 49 static inline int PA_CONTEXT_IS_GOOD(pa_context_state_t x) { 50 return 51 x == PA_CONTEXT_CONNECTING || 52 x == PA_CONTEXT_AUTHORIZING || 53 x == PA_CONTEXT_SETTING_NAME || 54 x == PA_CONTEXT_READY; 55 } 56 /** Return non-zero if the passed state is one of the connected states */ 57 static inline int PA_STREAM_IS_GOOD(pa_stream_state_t x) { 58 return 59 x == PA_STREAM_CREATING || 60 x == PA_STREAM_READY; 61 } 62 #endif /* pulseaudio <= 0.9.10 */ 63 64 /* Old variable names */ 65 #define mainloop (this->hidden->mainloop) 66 #define mainloop_api (this->hidden->mainloop_api) 67 #define context (this->hidden->context) 68 #define stream (this->hidden->stream) 69 #define mixbuf (this->hidden->mixbuf) 70 #define mixlen (this->hidden->mixlen) 71 72 #endif /* _SDL_pulseaudio_h */ 73 74