Date: Sat, 9 Oct 2004 02:46:18 +0300 (EEST)
From: Hannu Savolainen
Subject: SDL uses obsolete OSS features
I was trying to compile SDL against the latest OSS version. It appeared
that SDL 1.2.7 is using a very old SOUND_PCM_WRITE_RATE ioctl that is
obsolete and has been removed from OSS. The right ioctl to call is
SNDCTL_DSP_SPEED. Attached is a patch (works with all OSS versions).
--- a/src/audio/dma/SDL_dmaaudio.c Fri Oct 08 09:08:32 2004 +0000
+++ b/src/audio/dma/SDL_dmaaudio.c Sat Oct 09 22:11:45 2004 +0000
@@ -301,7 +301,7 @@
/* Set the DSP frequency */
value = spec->freq;
- if ( ioctl(audio_fd, SOUND_PCM_WRITE_RATE, &value) < 0 ) {
+ if ( ioctl(audio_fd, SNDCTL_DSP_SPEED, &value) < 0 ) {
SDL_SetError("Couldn't set audio frequency");
return(-1);
}
--- a/src/audio/dsp/SDL_dspaudio.c Fri Oct 08 09:08:32 2004 +0000
+++ b/src/audio/dsp/SDL_dspaudio.c Sat Oct 09 22:11:45 2004 +0000
@@ -309,7 +309,7 @@
/* Set the DSP frequency */
value = spec->freq;
- if ( ioctl(audio_fd, SOUND_PCM_WRITE_RATE, &value) < 0 ) {
+ if ( ioctl(audio_fd, SNDCTL_DSP_SPEED, &value) < 0 ) {
SDL_SetError("Couldn't set audio frequency");
return(-1);
}