ref: 502ff6a666729f7b854e9c406030af24bb16d55c
parent: caf76f0e421c3b55e973dfc125bc7bff7a6e89db
author: Simon Howard <fraggle@gmail.com>
date: Tue Dec 26 10:43:16 EST 2006
On OSX, make MIDI music disabled by default. There are problems with the native MIDI code in SDL_mixer. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 811
--- a/setup/sound.c
+++ b/setup/sound.c
@@ -23,15 +23,25 @@
#include <stdlib.h>
+#include "SDL.h"
#include "textscreen.h"
#include "sound.h"
+// Disable MIDI music on OSX: there are problems with the native
+// MIDI code in SDL_mixer.
+
+#ifdef __MACOSX__
+#define DEFAULT_MUSIC_DEVICE 0
+#else
+#define DEFAULT_MUSIC_DEVICE 3
+#endif
+
int snd_sfxdevice = 3;
int numChannels = 8;
int sfxVolume = 15;
-int snd_musicdevice = 3;
+int snd_musicdevice = DEFAULT_MUSIC_DEVICE;
int musicVolume = 15;
static int snd_sfxenabled;
--- a/src/i_sound.c
+++ b/src/i_sound.c
@@ -28,7 +28,7 @@
#include <stdio.h>
#include <stdlib.h>
#include "SDL.h"
-#include <SDL_mixer.h>
+#include "SDL_mixer.h"
#ifndef _WIN32
#include <unistd.h>
@@ -78,7 +78,15 @@
static Mix_Chunk sound_chunks[NUMSFX];
static int channels_playing[NUM_CHANNELS];
-int snd_musicdevice = SNDDEVICE_SB;
+// Disable music on OSX by default; there are problems with SDL_mixer.
+
+#ifndef __MACOSX__
+#define DEFAULT_MUSIC_DEVICE SNDDEVICE_SB
+#else
+#define DEFAULT_MUSIC_DEVICE SNDDEVICE_NONE
+#endif
+
+int snd_musicdevice = DEFAULT_MUSIC_DEVICE;
int snd_sfxdevice = SNDDEVICE_SB;
// When a sound stops, check if it is still playing. If it is not,
@@ -474,6 +482,20 @@
{
nosfxparm = true;
}
+
+ // When trying to run with music enabled on OSX, display
+ // a warning message.
+
+#ifdef __MACOSX__
+ if (!nomusicparm)
+ {
+ printf("\n"
+ " *** WARNING ***\n"
+ " Music playback on OSX may cause crashes and\n"
+ " is disabled by default.\n"
+ "\n");
+ }
+#endif
//!
// Disable sound effects and music.