15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SDL - Simple DirectMedia Layer 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Copyright (C) 1997-2012 Sam Lantinga 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This library is free software; you can redistribute it and/or 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) modify it under the terms of the GNU Library General Public 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) License as published by the Free Software Foundation; either 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) version 2 of the License, or (at your option) any later version. 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) This library is distributed in the hope that it will be useful, 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) but WITHOUT ANY WARRANTY; without even the implied warranty of 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Library General Public License for more details. 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) You should have received a copy of the GNU Library General Public 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) License along with this library; if not, write to the Free 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Sam Lantinga 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) slouken@libsdl.org 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/ 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "SDL_config.h" 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _SDL_openbsdaudio_h 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _SDL_openbsdaudio_h 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "../SDL_sysaudio.h" 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _THIS SDL_AudioDevice *this 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct SDL_PrivateAudioData 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* The file descriptor for the audio device */ 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int audio_fd; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* The parent process id, to detect when application quits */ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) pid_t parent; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Raw mixing buffer */ 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Uint8 *mixbuf; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int mixlen; 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /* Support for audio timing using a timer, in addition to select() */ 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float frame_ticks; 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) float next_frame; 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define FUDGE_TICKS 10 /* The scheduler overhead ticks per frame */ 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Old variable names */ 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define audio_fd (this->hidden->audio_fd) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define parent (this->hidden->parent) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define mixbuf (this->hidden->mixbuf) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define mixlen (this->hidden->mixlen) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define frame_ticks (this->hidden->frame_ticks) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define next_frame (this->hidden->next_frame) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* _SDL_openbsdaudio_h */ 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)