ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/MacOSX/audio_macosx.cpp
Revision: 1.1
Committed: 2002-03-16T03:59:58Z (22 years, 5 months ago) by nigel
Branch: MAIN
CVS Tags: nigel-build-12, nigel-build-13, nigel-build-10
Log Message:
Initial revision of Mac OS X port code. Uses Objective-C++. Needs Mac OS 10.1

File Contents

# User Rev Content
1 nigel 1.1 /*
2     * audio_MacOSX.cpp - Based on audio_dummy.cpp
3     *
4     * $Id$
5     *
6     * Basilisk II (C) 1997-2002 Christian Bauer
7     *
8     * This program is free software; you can redistribute it and/or modify
9     * it under the terms of the GNU General Public License as published by
10     * the Free Software Foundation; either version 2 of the License, or
11     * (at your option) any later version.
12     *
13     * This program is distributed in the hope that it will be useful,
14     * but WITHOUT ANY WARRANTY; without even the implied warranty of
15     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16     * GNU General Public License for more details.
17     *
18     * You should have received a copy of the GNU General Public License
19     * along with this program; if not, write to the Free Software
20     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21     */
22    
23     #include "sysdeps.h"
24     #include "prefs.h"
25     #include "audio.h"
26     #include "audio_defs.h"
27    
28     #define DEBUG 1
29     #include "debug.h"
30    
31    
32     #include "main_macosx.h"
33    
34     #import <CoreFoundation/CoreFoundation.h>
35    
36     #import <CoreAudio/CoreAudio.h>
37    
38    
39    
40     AudioDeviceID device = kAudioDeviceUnknown;
41    
42     /*
43     * Initialization
44     */
45    
46     void AudioInit(void)
47     {
48     int count;
49    
50     // Init audio status and feature flags
51     AudioStatus.sample_rate = 44100 << 16;
52     AudioStatus.sample_size = 16;
53     AudioStatus.channels = 2;
54     AudioStatus.mixer = 0;
55     AudioStatus.num_sources = 0;
56     audio_component_flags = cmpWantsRegisterMessage | kStereoOut | k16BitOut;
57    
58     // Only one sample format is supported
59     audio_sample_rates.push_back(44100 << 16);
60     audio_sample_sizes.push_back(16);
61     audio_channel_counts.push_back(2);
62    
63     // Sound disabled in prefs? Then do nothing
64     if (PrefsFindBool("nosound"))
65     return;
66    
67    
68     // Get default audio device
69    
70     count = sizeof(device);
71     err = AudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice,
72     &count, (void *) &device);
73     if ( err != noErr || device == kAudioDeviceUnknown )
74     {
75     NSLog(@"Failed to get default audio output device");
76     audio_open = false;
77     return;
78     }
79    
80    
81     // Audio not available
82     audio_open = false;
83     }
84    
85    
86     /*
87     * Deinitialization
88     */
89    
90     void AudioExit(void)
91     {
92     }
93    
94    
95     /*
96     * First source added, start audio stream
97     */
98    
99     void audio_enter_stream()
100     {
101     }
102    
103    
104     /*
105     * Last source removed, stop audio stream
106     */
107    
108     void audio_exit_stream()
109     {
110     }
111    
112    
113     /*
114     * MacOS audio interrupt, read next data block
115     */
116    
117     void AudioInterrupt(void)
118     {
119     D(bug("AudioInterrupt\n"));
120     }
121    
122    
123     /*
124     * Set sampling parameters
125     * "index" is an index into the audio_sample_rates[] etc. vectors
126     * It is guaranteed that AudioStatus.num_sources == 0
127     */
128    
129     bool audio_set_sample_rate(int index)
130     {
131     }
132    
133     bool audio_set_sample_size(int index)
134     {
135     }
136    
137     bool audio_set_channels(int index)
138     {
139     }
140    
141    
142     /*
143     * Get/set volume controls (volume values received/returned have the left channel
144     * volume in the upper 16 bits and the right channel volume in the lower 16 bits;
145     * both volumes are 8.8 fixed point values with 0x0100 meaning "maximum volume"))
146     */
147    
148     bool audio_get_main_mute(void)
149     {
150     return false;
151     }
152    
153     uint32 audio_get_main_volume(void)
154     {
155     return 0x01000100;
156     }
157    
158     bool audio_get_speaker_mute(void)
159     {
160     return false;
161     }
162    
163     uint32 audio_get_speaker_volume(void)
164     {
165     return 0x01000100;
166     }
167    
168     void audio_set_main_mute(bool mute)
169     {
170     }
171    
172     void audio_set_main_volume(uint32 vol)
173     {
174     }
175    
176     void audio_set_speaker_mute(bool mute)
177     {
178     }
179    
180     void audio_set_speaker_volume(uint32 vol)
181     {
182     }