comparison src/audio/baudio/SDL_beaudio.cc @ 2060:866052b01ee5

indent is evil
author Sam Lantinga <slouken@libsdl.org>
date Sat, 28 Oct 2006 16:48:03 +0000
parents 5f6550e5184f
children 99210400e8b9
comparison
equal deleted inserted replaced
2059:4685ccd33d0e 2060:866052b01ee5
56 56
57 if (!audio->paused) { 57 if (!audio->paused) {
58 if (audio->convert.needed) { 58 if (audio->convert.needed) {
59 SDL_mutexP(audio->mixer_lock); 59 SDL_mutexP(audio->mixer_lock);
60 (*audio->spec.callback) (audio->spec.userdata, 60 (*audio->spec.callback) (audio->spec.userdata,
61 (Uint8 *) audio->convert.buf, 61 (Uint8 *) audio->convert.buf,
62 audio->convert.len); 62 audio->convert.len);
63 SDL_mutexV(audio->mixer_lock); 63 SDL_mutexV(audio->mixer_lock);
64 SDL_ConvertAudio(&audio->convert); 64 SDL_ConvertAudio(&audio->convert);
65 SDL_memcpy(stream, audio->convert.buf, audio->convert.len_cvt); 65 SDL_memcpy(stream, audio->convert.buf, audio->convert.len_cvt);
66 } else { 66 } else {
67 SDL_mutexP(audio->mixer_lock); 67 SDL_mutexP(audio->mixer_lock);
68 (*audio->spec.callback) (audio->spec.userdata, 68 (*audio->spec.callback) (audio->spec.userdata,
69 (Uint8 *) stream, len); 69 (Uint8 *) stream, len);
70 SDL_mutexV(audio->mixer_lock); 70 SDL_mutexV(audio->mixer_lock);
71 } 71 }
72 } 72 }
73 } 73 }
74 74
104 104
105 /* Parse the audio format and fill the Be raw audio format */ 105 /* Parse the audio format and fill the Be raw audio format */
106 SDL_memset(&format, '\0', sizeof(media_raw_audio_format)); 106 SDL_memset(&format, '\0', sizeof(media_raw_audio_format));
107 format.byte_order = B_MEDIA_LITTLE_ENDIAN; 107 format.byte_order = B_MEDIA_LITTLE_ENDIAN;
108 format.frame_rate = (float) _this->spec.freq; 108 format.frame_rate = (float) _this->spec.freq;
109 format.channel_count = _this->spec.channels; /* !!! FIXME: support > 2? */ 109 format.channel_count = _this->spec.channels; /* !!! FIXME: support > 2? */
110 while ((!valid_datatype) && (test_format)) { 110 while ((!valid_datatype) && (test_format)) {
111 valid_datatype = 1; 111 valid_datatype = 1;
112 _this->spec.format = test_format; 112 _this->spec.format = test_format;
113 switch (test_format) { 113 switch (test_format) {
114 case AUDIO_S8: 114 case AUDIO_S8:
115 format.format = media_raw_audio_format::B_AUDIO_CHAR; 115 format.format = media_raw_audio_format::B_AUDIO_CHAR;
116 break; 116 break;
117 117
118 case AUDIO_U8: 118 case AUDIO_U8:
119 format.format = media_raw_audio_format::B_AUDIO_UCHAR; 119 format.format = media_raw_audio_format::B_AUDIO_UCHAR;
120 break; 120 break;
121 121
122 case AUDIO_S16LSB: 122 case AUDIO_S16LSB:
123 format.format = media_raw_audio_format::B_AUDIO_SHORT; 123 format.format = media_raw_audio_format::B_AUDIO_SHORT;
124 break; 124 break;
125 125
126 case AUDIO_S16MSB: 126 case AUDIO_S16MSB:
127 format.format = media_raw_audio_format::B_AUDIO_SHORT; 127 format.format = media_raw_audio_format::B_AUDIO_SHORT;
128 format.byte_order = B_MEDIA_BIG_ENDIAN; 128 format.byte_order = B_MEDIA_BIG_ENDIAN;
129 break; 129 break;
130 130
131 case AUDIO_S32LSB: 131 case AUDIO_S32LSB:
132 format.format = media_raw_audio_format::B_AUDIO_INT; 132 format.format = media_raw_audio_format::B_AUDIO_INT;
133 break; 133 break;
134 134
135 case AUDIO_S32MSB: 135 case AUDIO_S32MSB:
136 format.format = media_raw_audio_format::B_AUDIO_INT; 136 format.format = media_raw_audio_format::B_AUDIO_INT;
137 format.byte_order = B_MEDIA_BIG_ENDIAN; 137 format.byte_order = B_MEDIA_BIG_ENDIAN;
138 break; 138 break;
139 139
140 case AUDIO_F32LSB: 140 case AUDIO_F32LSB:
141 format.format = media_raw_audio_format::B_AUDIO_FLOAT; 141 format.format = media_raw_audio_format::B_AUDIO_FLOAT;
142 break; 142 break;
143 143
144 case AUDIO_F32MSB: 144 case AUDIO_F32MSB:
145 format.format = media_raw_audio_format::B_AUDIO_FLOAT; 145 format.format = media_raw_audio_format::B_AUDIO_FLOAT;
146 format.byte_order = B_MEDIA_BIG_ENDIAN; 146 format.byte_order = B_MEDIA_BIG_ENDIAN;
147 break; 147 break;
148 148
149 default: 149 default:
150 valid_datatype = 0; 150 valid_datatype = 0;
151 test_format = SDL_NextAudioFormat(); 151 test_format = SDL_NextAudioFormat();
152 break; 152 break;
153 } 153 }
154 } 154 }
155 155
156 format.buffer_size = _this->spec.samples; 156 format.buffer_size = _this->spec.samples;
157 157
158 if (!valid_datatype) { /* shouldn't happen, but just in case... */ 158 if (!valid_datatype) { /* shouldn't happen, but just in case... */
159 BEOSAUDIO_CloseDevice(_this); 159 BEOSAUDIO_CloseDevice(_this);
160 SDL_SetError("Unsupported audio format"); 160 SDL_SetError("Unsupported audio format");
161 return 0; 161 return 0;
162 } 162 }
163 163
188 { 188 {
189 SDL_QuitBeApp(); 189 SDL_QuitBeApp();
190 } 190 }
191 191
192 static int 192 static int
193 BEOSAUDIO_Init(SDL_AudioDriverImpl *impl) 193 BEOSAUDIO_Init(SDL_AudioDriverImpl * impl)
194 { 194 {
195 /* Initialize the Be Application, if it's not already started */ 195 /* Initialize the Be Application, if it's not already started */
196 if (SDL_InitBeApp() < 0) { 196 if (SDL_InitBeApp() < 0) {
197 return 0; 197 return 0;
198 } 198 }
205 impl->OnlyHasDefaultOutputDevice = 1; 205 impl->OnlyHasDefaultOutputDevice = 1;
206 206
207 return 1; 207 return 1;
208 } 208 }
209 209
210 extern "C" { extern AudioBootStrap BEOSAUDIO_bootstrap; } 210 extern "C"
211 {
212 extern AudioBootStrap BEOSAUDIO_bootstrap;
213 }
211 AudioBootStrap BEOSAUDIO_bootstrap = { 214 AudioBootStrap BEOSAUDIO_bootstrap = {
212 "baudio", "BeOS BSoundPlayer", BEOSAUDIO_Init, 0 215 "baudio", "BeOS BSoundPlayer", BEOSAUDIO_Init, 0
213 }; 216 };
214 217
215 /* vi: set ts=4 sw=4 expandtab: */ 218 /* vi: set ts=4 sw=4 expandtab: */
216