ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/MacOSX/MacOSX_sound_if.h
Revision: 1.1
Committed: 2006-07-28T13:42:29Z (17 years, 10 months ago) by nigel
Content type: text/plain
Branch: MAIN
CVS Tags: nigel-build-19, HEAD
Log Message:
Working audio output by Daniel Sumorok.
Not quite the way I wanted to do it but it will do for now.
(on a real Mac, the real audio hardware should be able to pull/grab the data
 from our buffers - an extra thread with its own set of buffers is wasteful!)

File Contents

# User Rev Content
1 nigel 1.1 /*
2     * MacOSX_sound_if.h
3     * BasiliskII
4     *
5     * Copyright 2006 Daniel Sumorok. All rights reserved.
6     *
7     * This program is free software; you can redistribute it and/or modify
8     * it under the terms of the GNU General Public License as published by
9     * the Free Software Foundation; either version 2 of the License, or
10     * (at your option) any later version.
11     *
12     * This program is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with this program; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20     */
21    
22     typedef int (*audioCallback)(void);
23    
24     class AudioBackEnd;
25    
26     class OSXsoundOutput {
27     private:
28     static void getMoreSamples(void *arg);
29    
30     AudioBackEnd *player;
31     audioCallback callback;
32     public:
33     OSXsoundOutput();
34     ~OSXsoundOutput();
35     int start(int bitsPerSample, int numChannels, int sampleRate);
36     int stop();
37     int putBuffer(void *buffer, int numSamples);
38     void setCallback(audioCallback fn);
39     unsigned int bufferSizeFrames();
40     int sendAudioBuffer(void *buffer, int numFrames);
41     };