Fix some issues with sound
authorunc0rr
Sun, 04 Sep 2005 21:19:19 +0000
changeset 11 b64d67d222b9
parent 10 edf56dca1587
child 12 366adfa1a727
Fix some issues with sound
hedgewars/SDLh.pas
hedgewars/uSound.pas
--- a/hedgewars/SDLh.pas	Sat Sep 03 16:01:28 2005 +0000
+++ b/hedgewars/SDLh.pas	Sun Sep 04 21:19:19 2005 +0000
@@ -75,6 +75,8 @@
       SDL_QUITEV      = 12;
 
       SDL_INIT_VIDEO  = $00000020;
+      SDL_INIT_AUDIO  = $00000010;
+      
 type PSDL_Rect = ^TSDL_Rect;
      TSDL_Rect = record
                  x, y: SmallInt;
@@ -305,6 +307,7 @@
 
 function  Mix_VolumeMusic(volume: integer): integer; cdecl; external SDL_MixerLibName;
 
+function Mix_AllocateChannels(numchans: integer): integer; cdecl; external SDL_MixerLibName;
 procedure Mix_FreeChunk(chunk: PMixChunk); cdecl; external SDL_MixerLibName;
 procedure Mix_FreeMusic(music: PMixMusic); cdecl; external SDL_MixerLibName;
 
--- a/hedgewars/uSound.pas	Sat Sep 03 16:01:28 2005 +0000
+++ b/hedgewars/uSound.pas	Sun Sep 04 21:19:19 2005 +0000
@@ -51,9 +51,12 @@
 begin
 if not isSoundEnabled then exit;
 WriteToConsole('Init sound...');
-isSoundEnabled:= Mix_OpenAudio(22050, $8010, 2, 512) = 0;
+isSoundEnabled:= SDL_Init(SDL_INIT_AUDIO) >= 0;
+if isSoundEnabled then
+   isSoundEnabled:= Mix_OpenAudio(22050, $8010, 2, 512) = 0;
 if isSoundEnabled then WriteLnToConsole(msgOK)
                   else WriteLnToConsole(msgFailed);
+Mix_AllocateChannels(Succ(ord(High(TSound))));
 Mix_VolumeMusic(48)
 end;