src/audio/dmedia/SDL_irixaudio.c
changeset 903 6e6248801043
parent 605 6399f4e90211
child 1312 c9b51268668f
--- a/src/audio/dmedia/SDL_irixaudio.c	Sat Jul 17 08:58:24 2004 +0000
+++ b/src/audio/dmedia/SDL_irixaudio.c	Sun Jul 18 18:33:28 2004 +0000
@@ -28,6 +28,7 @@
 #endif
 
 /* Allow access to a raw mixing buffer (For IRIX 6.5 and higher) */
+/* patch for IRIX 5 by Georg Schwarz 18/07/2004 */
 
 #include <stdlib.h>
 
@@ -39,6 +40,19 @@
 #include "SDL_irixaudio.h"
 
 
+#ifndef AL_RESOURCE /* as a test whether we use the old IRIX audio libraries */
+#define OLD_IRIX_AUDIO
+#define alClosePort(x) ALcloseport(x)
+#define alFreeConfig(x) ALfreeconfig(x)
+#define alGetFillable(x) ALgetfillable(x)
+#define alNewConfig() ALnewconfig()
+#define alOpenPort(x,y,z) ALopenport(x,y,z)
+#define alSetChannels(x,y) ALsetchannels(x,y)
+#define alSetQueueSize(x,y) ALsetqueuesize(x,y)
+#define alSetSampFmt(x,y) ALsetsampfmt(x,y)
+#define alSetWidth(x,y) ALsetwidth(x,y)
+#endif
+
 /* Audio driver functions */
 static int AL_OpenAudio(_THIS, SDL_AudioSpec *spec);
 static void AL_WaitAudio(_THIS);
@@ -137,7 +151,11 @@
 static int AL_OpenAudio(_THIS, SDL_AudioSpec *spec)
 {
 	ALconfig audio_config;
+#ifdef OLD_IRIX_AUDIO
+	long audio_param[2];
+#else
 	ALpv audio_param;
+#endif
 	int width;
 
 	/* Determine the audio parameters from the AudioSpec */
@@ -165,9 +183,15 @@
 	SDL_CalculateAudioSpec(spec);
 
 	/* Set output frequency */
+#ifdef OLD_IRIX_AUDIO
+	audio_param[0] = AL_OUTPUT_RATE;
+	audio_param[1] = spec->freq;
+	if( ALsetparams(AL_DEFAULT_DEVICE, audio_param, 2) < 0 ) {
+#else
 	audio_param.param = AL_RATE;
 	audio_param.value.i = spec->freq;
 	if( alSetParams(AL_DEFAULT_OUTPUT, &audio_param, 1) < 0 ) {
+#endif
 		SDL_SetError("alSetParams failed");
 		return(-1);
 	}