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)