From: Holger Schemel Date: Fri, 10 May 2002 14:23:20 +0000 (+0200) Subject: rnd-20020510-4-src X-Git-Tag: 2.1.0^2~29 X-Git-Url: https://git.artsoft.org/?a=commitdiff_plain;h=1085cba858dc9cccaa5da434ddb990de23fffdfc;p=rocksndiamonds.git rnd-20020510-4-src --- diff --git a/src/init.c b/src/init.c index 04259035..a8bac24c 100644 --- a/src/init.c +++ b/src/init.c @@ -45,7 +45,7 @@ static void InitPlayerInfo(void); static void InitLevelInfo(void); static void InitArtworkInfo(void); static void InitNetworkServer(void); -static void InitSoundServer(void); +static void InitMixer(void); static void InitSound(void); static void InitGfx(void); static void InitGfxBackground(void); @@ -75,7 +75,7 @@ void OpenAll(void) InitArtworkInfo(); /* needed before loading gfx, sound & music */ InitCounter(); - InitSoundServer(); + InitMixer(); InitJoysticks(); InitRND(NEW_RANDOMIZE); @@ -153,12 +153,12 @@ void InitNetworkServer() #endif } -static void InitSoundServer() +static void InitMixer() { OpenAudio(); InitSoundList(sound_effects, NUM_SOUND_EFFECTS); - StartSoundserver(); + StartMixer(); } static void InitSound() diff --git a/src/libgame/msdos.c b/src/libgame/msdos.c index 61e1eaf2..0105f3f9 100644 --- a/src/libgame/msdos.c +++ b/src/libgame/msdos.c @@ -936,7 +936,7 @@ void MSDOSOpenAudio(void) audio.music_channel = MUSIC_CHANNEL; audio.first_sound_channel = FIRST_SOUND_CHANNEL; - InitPlaylist(); + Mixer_InitChannels(); } } diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index c7a7f567..6365c871 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -899,7 +899,7 @@ inline void SDLOpenAudio(void) Mix_Volume(-1, SOUND_MAX_VOLUME); Mix_VolumeMusic(SOUND_MAX_VOLUME); - InitPlaylist(); + Mixer_InitChannels(); } inline void SDLCloseAudio(void) diff --git a/src/libgame/sound.c b/src/libgame/sound.c index c876945f..00019c6e 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -50,11 +50,12 @@ static int num_sounds = 0, num_music = 0; /* THE STUFF BELOW IS ONLY USED BY THE SOUND SERVER CHILD PROCESS */ static struct AudioFormatInfo afmt; -static struct SoundControl playlist[NUM_MIXER_CHANNELS]; -static int playing_sounds = 0; +static struct SoundControl mixer[NUM_MIXER_CHANNELS]; +static int mixer_active_channels = 0; /* forward declaration of internal functions */ -static void SoundServer_InsertNewSound(struct SoundControl); +static void Mixer_Main(void); +static void Mixer_InsertNewSound(struct SoundControl); static void InitAudioDevice(struct AudioFormatInfo *); #if defined(PLATFORM_UNIX) @@ -63,9 +64,9 @@ static unsigned char linear_to_ulaw(int); static int ulaw_to_linear(unsigned char); #endif #elif defined(PLATFORM_MSDOS) -static void SoundServer_InsertNewSound(struct SoundControl); -static void SoundServer_StopSound(struct SoundControl); -static void SoundServer_StopAllSounds(); +static void Mixer_InsertNewSound(struct SoundControl); +static void Mixer_StopSound(struct SoundControl); +static void Mixer_StopAllSounds(); #endif static void ReloadCustomSounds(); @@ -132,27 +133,27 @@ static boolean TestAudioDevices(void) #if !defined(TARGET_SDL) static boolean ForkAudioProcess(void) { - if (pipe(audio.soundserver_pipe) < 0) + if (pipe(audio.mixer_pipe) < 0) { Error(ERR_WARN, "cannot create pipe -- no sounds"); return FALSE; } - if ((audio.soundserver_pid = fork()) < 0) + if ((audio.mixer_pid = fork()) < 0) { Error(ERR_WARN, "cannot create sound server process -- no sounds"); return FALSE; } - if (audio.soundserver_pid == 0) /* we are child process */ + if (audio.mixer_pid == 0) /* we are child process */ { - SoundServer(); + Mixer_Main(); /* never reached */ exit(0); } else /* we are parent */ - close(audio.soundserver_pipe[0]); /* no reading from pipe needed */ + close(audio.mixer_pipe[0]); /* no reading from pipe needed */ return TRUE; } @@ -181,8 +182,8 @@ void UnixCloseAudio(void) if (audio.device_fd) close(audio.device_fd); - if (audio.soundserver_pid > 0) /* we are parent process */ - kill(audio.soundserver_pid, SIGTERM); + if (audio.mixer_pid > 0) /* we are parent process */ + kill(audio.mixer_pid, SIGTERM); } static void WriteReloadInfoToPipe(char *set_name, int type) @@ -194,29 +195,35 @@ static void WriteReloadInfoToPipe(char *set_name, int type) unsigned long str_size2 = strlen(ti->basepath) + 1; unsigned long str_size3 = strlen(ti->fullpath) + 1; + if (audio.mixer_pid == 0) /* we are child process */ + return; + + if (leveldir_current == NULL) /* should never happen */ + Error(ERR_EXIT, "leveldir_current == NULL"); + snd_ctrl.active = FALSE; snd_ctrl.state = type; snd_ctrl.data_len = strlen(set_name) + 1; - if (write(audio.soundserver_pipe[1], &snd_ctrl, + if (write(audio.mixer_pipe[1], &snd_ctrl, sizeof(snd_ctrl)) < 0 || - write(audio.soundserver_pipe[1], set_name, + write(audio.mixer_pipe[1], set_name, snd_ctrl.data_len) < 0 || - write(audio.soundserver_pipe[1], leveldir_current, + write(audio.mixer_pipe[1], leveldir_current, sizeof(TreeInfo)) < 0 || - write(audio.soundserver_pipe[1], ti, + write(audio.mixer_pipe[1], ti, sizeof(TreeInfo)) < 0 || - write(audio.soundserver_pipe[1], &str_size1, + write(audio.mixer_pipe[1], &str_size1, sizeof(unsigned long)) < 0 || - write(audio.soundserver_pipe[1], &str_size2, + write(audio.mixer_pipe[1], &str_size2, sizeof(unsigned long)) < 0 || - write(audio.soundserver_pipe[1], &str_size3, + write(audio.mixer_pipe[1], &str_size3, sizeof(unsigned long)) < 0 || - write(audio.soundserver_pipe[1], leveldir_current->fullpath, + write(audio.mixer_pipe[1], leveldir_current->fullpath, str_size1) < 0 || - write(audio.soundserver_pipe[1], ti->basepath, + write(audio.mixer_pipe[1], ti->basepath, str_size2) < 0 || - write(audio.soundserver_pipe[1], ti->fullpath, + write(audio.mixer_pipe[1], ti->fullpath, str_size3) < 0) { Error(ERR_WARN, "cannot pipe to child process -- no sounds"); @@ -249,17 +256,17 @@ static void ReadReloadInfoFromPipe(struct SoundControl snd_ctrl) if (ti->fullpath != NULL) free(ti->fullpath); - if (read(audio.soundserver_pipe[0], set_name, + if (read(audio.mixer_pipe[0], set_name, snd_ctrl.data_len) != snd_ctrl.data_len || - read(audio.soundserver_pipe[0], leveldir_current, + read(audio.mixer_pipe[0], leveldir_current, sizeof(TreeInfo)) != sizeof(TreeInfo) || - read(audio.soundserver_pipe[0], ti, + read(audio.mixer_pipe[0], ti, sizeof(TreeInfo)) != sizeof(TreeInfo) || - read(audio.soundserver_pipe[0], &str_size1, + read(audio.mixer_pipe[0], &str_size1, sizeof(unsigned long)) != sizeof(unsigned long) || - read(audio.soundserver_pipe[0], &str_size2, + read(audio.mixer_pipe[0], &str_size2, sizeof(unsigned long)) != sizeof(unsigned long) || - read(audio.soundserver_pipe[0], &str_size3, + read(audio.mixer_pipe[0], &str_size3, sizeof(unsigned long)) != sizeof(unsigned long)) Error(ERR_EXIT_SOUND_SERVER, "broken pipe -- no sounds"); @@ -267,11 +274,11 @@ static void ReadReloadInfoFromPipe(struct SoundControl snd_ctrl) ti->basepath = checked_calloc(str_size2); ti->fullpath = checked_calloc(str_size3); - if (read(audio.soundserver_pipe[0], leveldir_current->fullpath, + if (read(audio.mixer_pipe[0], leveldir_current->fullpath, str_size1) != str_size1 || - read(audio.soundserver_pipe[0], ti->basepath, + read(audio.mixer_pipe[0], ti->basepath, str_size2) != str_size2 || - read(audio.soundserver_pipe[0], ti->fullpath, + read(audio.mixer_pipe[0], ti->fullpath, str_size3) != str_size3) Error(ERR_EXIT_SOUND_SERVER, "broken pipe -- no sounds"); @@ -282,29 +289,34 @@ static void ReadReloadInfoFromPipe(struct SoundControl snd_ctrl) } #endif /* PLATFORM_UNIX */ -void InitPlaylist(void) +void Mixer_InitChannels() { int i; for(i=0; i %d\n", playing_sounds); + printf("-> %d\n", mixer_active_channels); #endif - if (playing_sounds == audio.num_channels) + if (mixer_active_channels == audio.num_channels) { for (i=0; i longest) + if (!IS_LOOP(mixer[i]) && actual > longest) { longest = actual; longest_nr = i; } } #if defined(PLATFORM_MSDOS) - voice_set_volume(playlist[longest_nr].voice, 0); - deallocate_voice(playlist[longest_nr].voice); + voice_set_volume(mixer[longest_nr].voice, 0); + deallocate_voice(mixer[longest_nr].voice); #endif - PlaylistRemoveSound(longest_nr); + Mixer_RemoveSound(longest_nr); } /* check if sound is already being played (and how often) */ for (k=0, i=audio.first_sound_channel; i= longest) { @@ -423,13 +435,13 @@ static void PlaylistInsertSound(struct SoundControl snd_ctrl) } #if defined(PLATFORM_MSDOS) - voice_set_volume(playlist[longest_nr].voice, 0); - deallocate_voice(playlist[longest_nr].voice); + voice_set_volume(mixer[longest_nr].voice, 0); + deallocate_voice(mixer[longest_nr].voice); #endif - PlaylistRemoveSound(longest_nr); + Mixer_RemoveSound(longest_nr); } - /* add new sound to playlist */ + /* add new sound to mixer */ for(i=0; idata_ptr; snd_ctrl.data_len = snd_info->data_len; @@ -458,32 +470,32 @@ static void PlaylistInsertSound(struct SoundControl snd_ctrl) #endif #if 1 - if (IS_MUSIC(snd_ctrl) && i == audio.music_channel && playlist[i].active) + if (IS_MUSIC(snd_ctrl) && i == audio.music_channel && mixer[i].active) { printf("THIS SHOULD NEVER HAPPEN! [adding music twice]\n"); #if 1 - PlaylistRemoveSound(i); + Mixer_RemoveSound(i); #endif } #endif - playlist[i] = snd_ctrl; - playing_sounds++; + mixer[i] = snd_ctrl; + mixer_active_channels++; #if 0 - printf("NEW SOUND %d ADDED TO PLAYLIST\n", snd_ctrl.nr); + printf("NEW SOUND %d ADDED TO MIXER\n", snd_ctrl.nr); #endif #if defined(PLATFORM_MSDOS) - playlist[i].voice = allocate_voice((SAMPLE *)playlist[i].data_ptr); + mixer[i].voice = allocate_voice((SAMPLE *)mixer[i].data_ptr); if (snd_ctrl.loop) - voice_set_playmode(playlist[i].voice, PLAYMODE_LOOP); + voice_set_playmode(mixer[i].voice, PLAYMODE_LOOP); - voice_set_volume(playlist[i].voice, snd_ctrl.volume); - voice_set_pan(playlist[i].voice, snd_ctrl.stereo); - voice_start(playlist[i].voice); + voice_set_volume(mixer[i].voice, snd_ctrl.volume); + voice_set_pan(mixer[i].voice, snd_ctrl.stereo); + voice_start(mixer[i].voice); #endif break; } @@ -497,7 +509,7 @@ static void HandleSoundRequest(struct SoundControl snd_ctrl) if (IS_RELOADING(snd_ctrl)) /* load new sound or music files */ { ReadReloadInfoFromPipe(snd_ctrl); - InitPlaylist(); + Mixer_InitChannels(); CloseAudioDevice(&audio.device_fd); if (snd_ctrl.state & SND_CTRL_RELOAD_SOUNDS) @@ -507,44 +519,44 @@ static void HandleSoundRequest(struct SoundControl snd_ctrl) } else if (IS_FADING(snd_ctrl)) /* fade out existing sound or music */ { - if (!playing_sounds) + if (!mixer_active_channels) return; if (IS_MUSIC(snd_ctrl)) { - playlist[audio.music_channel].state |= SND_CTRL_FADE; + mixer[audio.music_channel].state |= SND_CTRL_FADE; return; } for(i=audio.first_sound_channel; i= SOUND_FADING_VOLUME_THRESHOLD) - playlist[i].volume -= SOUND_FADING_VOLUME_STEP; + if (IS_FADING(mixer[i]) && + mixer[i].volume >= SOUND_FADING_VOLUME_THRESHOLD) + mixer[i].volume -= SOUND_FADING_VOLUME_STEP; /* adjust volume of actual sound sample */ - if (playlist[i].volume != PSND_MAX_VOLUME) + if (mixer[i].volume != PSND_MAX_VOLUME) for(j=0; j> PSND_MAX_VOLUME_BITS; /* fill the last mixing buffer with stereo or mono sound */ if (stereo) { int middle_pos = PSND_MAX_LEFT2RIGHT / 2; - int left_volume = stereo_volume[middle_pos + playlist[i].stereo]; - int right_volume= stereo_volume[middle_pos - playlist[i].stereo]; + int left_volume = stereo_volume[middle_pos + mixer[i].stereo]; + int right_volume= stereo_volume[middle_pos - mixer[i].stereo]; for(j=0; j= playlist[i].data_len) + /* delete completed sound entries from the mixer */ + if (mixer[i].playingpos >= mixer[i].data_len) { - if (IS_LOOP(playlist[i])) - playlist[i].playingpos = 0; + if (IS_LOOP(mixer[i])) + mixer[i].playingpos = 0; else - PlaylistRemoveSound(i); + Mixer_RemoveSound(i); } - else if (playlist[i].volume <= SOUND_FADING_VOLUME_THRESHOLD) - PlaylistRemoveSound(i); + else if (mixer[i].volume <= SOUND_FADING_VOLUME_THRESHOLD) + Mixer_RemoveSound(i); } /* prepare final playing buffer according to system audio format */ @@ -743,13 +755,13 @@ static void SoundServer_Mixer() /* finally play the sound fragment */ write(audio.device_fd, playing_buffer, fragment_size); - if (!playing_sounds) + if (!mixer_active_channels) CloseAudioDevice(&audio.device_fd); } #else /* !AUDIO_STREAMING_DSP */ -static int SoundServer_SimpleAudio(struct SoundControl snd_ctrl) +static int Mixer_Main_SimpleAudio(struct SoundControl snd_ctrl) { static short premix_first_buffer[SND_BLOCKSIZE]; static byte playing_buffer[SND_BLOCKSIZE]; @@ -763,21 +775,21 @@ static int SoundServer_SimpleAudio(struct SoundControl snd_ctrl) i = 1; /* pointer, lenght and actual playing position of sound sample */ - sample_ptr = playlist[i].data_ptr; - sample_len = playlist[i].data_len; - sample_pos = playlist[i].playingpos; + sample_ptr = mixer[i].data_ptr; + sample_len = mixer[i].data_len; + sample_pos = mixer[i].playingpos; sample_size = MIN(max_sample_size, sample_len - sample_pos); - playlist[i].playingpos += sample_size; + mixer[i].playingpos += sample_size; /* copy original sample to first mixing buffer */ - CopySampleToMixingBuffer(&playlist[i], sample_pos, sample_size, + CopySampleToMixingBuffer(&mixer[i], sample_pos, sample_size, premix_first_buffer); /* adjust volume of actual sound sample */ - if (playlist[i].volume != PSND_MAX_VOLUME) + if (mixer[i].volume != PSND_MAX_VOLUME) for(j=0; j> PSND_MAX_VOLUME_BITS; /* might be needed for u-law /dev/audio */ @@ -787,9 +799,9 @@ static int SoundServer_SimpleAudio(struct SoundControl snd_ctrl) linear_to_ulaw(premix_first_buffer[j]); #endif - /* delete completed sound entries from the playlist */ - if (playlist[i].playingpos >= playlist[i].data_len) - PlaylistRemoveSound(i); + /* delete completed sound entries from the mixer */ + if (mixer[i].playingpos >= mixer[i].data_len) + Mixer_RemoveSound(i); for(i=0; i> 8) ^ 0x80; @@ -801,31 +813,31 @@ static int SoundServer_SimpleAudio(struct SoundControl snd_ctrl) } #endif /* !AUDIO_STREAMING_DSP */ -void SoundServer() +void Mixer_Main() { struct SoundControl snd_ctrl; - fd_set sound_fdset; + fd_set mixer_fdset; - close(audio.soundserver_pipe[1]); /* no writing into pipe needed */ + close(audio.mixer_pipe[1]); /* no writing into pipe needed */ - InitPlaylist(); + Mixer_InitChannels(); #if defined(PLATFORM_HPUX) InitAudioDevice(&afmt); #endif - FD_ZERO(&sound_fdset); - FD_SET(audio.soundserver_pipe[0], &sound_fdset); + FD_ZERO(&mixer_fdset); + FD_SET(audio.mixer_pipe[0], &mixer_fdset); while(1) /* wait for sound playing commands from client */ { struct timeval delay = { 0, 0 }; - FD_SET(audio.soundserver_pipe[0], &sound_fdset); - select(audio.soundserver_pipe[0] + 1, &sound_fdset, NULL, NULL, NULL); - if (!FD_ISSET(audio.soundserver_pipe[0], &sound_fdset)) + FD_SET(audio.mixer_pipe[0], &mixer_fdset); + select(audio.mixer_pipe[0] + 1, &mixer_fdset, NULL, NULL, NULL); + if (!FD_ISSET(audio.mixer_pipe[0], &mixer_fdset)) continue; - if (read(audio.soundserver_pipe[0], &snd_ctrl, sizeof(snd_ctrl)) + if (read(audio.mixer_pipe[0], &snd_ctrl, sizeof(snd_ctrl)) != sizeof(snd_ctrl)) Error(ERR_EXIT_SOUND_SERVER, "broken pipe -- no sounds"); @@ -833,12 +845,13 @@ void SoundServer() #if defined(AUDIO_STREAMING_DSP) - while (playing_sounds && select(audio.soundserver_pipe[0] + 1, - &sound_fdset, NULL, NULL, &delay) < 1) + while (mixer_active_channels && + select(audio.mixer_pipe[0] + 1, + &mixer_fdset, NULL, NULL, &delay) < 1) { - FD_SET(audio.soundserver_pipe[0], &sound_fdset); + FD_SET(audio.mixer_pipe[0], &mixer_fdset); - SoundServer_Mixer(); + Mixer_Main_DSP(); } #else /* !AUDIO_STREAMING_DSP */ @@ -852,15 +865,16 @@ void SoundServer() delay.tv_sec = 0; delay.tv_usec = 0; - while (playing_sounds && select(audio.soundserver_pipe[0] + 1, - &sound_fdset, NULL, NULL, &delay) < 1) + while (mixer_active_channels && + select(audio.mixer_pipe[0] + 1, + &mixer_fdset, NULL, NULL, &delay) < 1) { int wait_percent = 90; /* wait 90% of the real playing time */ int sample_size; - FD_SET(audio.soundserver_pipe[0], &sound_fdset); + FD_SET(audio.mixer_pipe[0], &mixer_fdset); - sample_size = SoundServer_SimpleAudio(snd_ctrl); + sample_size = Mixer_Main_SimpleAudio(snd_ctrl); delay.tv_sec = 0; delay.tv_usec = @@ -869,8 +883,7 @@ void SoundServer() CloseAudioDevice(&audio.device_fd); - /* delete all sounds from playlist */ - InitPlaylist(); + Mixer_InitChannels(); /* remove all sounds from mixer */ #endif /* !AUDIO_STREAMING_DSP */ } @@ -884,50 +897,50 @@ static void sound_handler(struct SoundControl snd_ctrl) if (snd_ctrl.fade_sound) { - if (!playing_sounds) + if (!mixer_active_channels) return; for (i=0; idata_ptr, (state & SND_CTRL_LOOP ? -1 : 0)); } #elif defined(PLATFORM_UNIX) - if (audio.soundserver_pid == 0) /* we are child process */ + if (audio.mixer_pid == 0) /* we are child process */ return; - if (write(audio.soundserver_pipe[1], &snd_ctrl, sizeof(snd_ctrl)) < 0) + if (write(audio.mixer_pipe[1], &snd_ctrl, sizeof(snd_ctrl)) < 0) { Error(ERR_WARN, "cannot pipe to child process -- no sounds"); audio.sound_available = audio.sound_enabled = FALSE; @@ -1766,10 +1779,10 @@ void StopSoundExt(int nr, int state) #elif !defined(PLATFORM_MSDOS) - if (audio.soundserver_pid == 0) /* we are child process */ + if (audio.mixer_pid == 0) /* we are child process */ return; - if (write(audio.soundserver_pipe[1], &snd_ctrl, sizeof(snd_ctrl)) < 0) + if (write(audio.mixer_pipe[1], &snd_ctrl, sizeof(snd_ctrl)) < 0) { Error(ERR_WARN, "cannot pipe to child process -- no sounds"); audio.sound_available = audio.sound_enabled = FALSE; @@ -1931,69 +1944,28 @@ static void ReloadCustomMusic() LoadCustomMusic(); } -static void InitReloadSoundsOrMusic(char *set_name, int type) +void InitReloadSounds(char *set_name) { if (!audio.sound_available) return; #if defined(TARGET_SDL) || defined(TARGET_ALLEGRO) - if (type == SND_CTRL_RELOAD_SOUNDS) - ReloadCustomSounds(); - else - ReloadCustomMusic(); + ReloadCustomSounds(); #elif defined(PLATFORM_UNIX) - if (audio.soundserver_pid == 0) /* we are child process */ - return; - - if (leveldir_current == NULL) /* should never happen */ - Error(ERR_EXIT, "leveldir_current == NULL"); - -#if 1 - WriteReloadInfoToPipe(set_name, type); -#else - - snd_ctrl.active = FALSE; - snd_ctrl.state = type; - snd_ctrl.data_len = strlen(set_name) + 1; - - if (write(audio.soundserver_pipe[1], &snd_ctrl, - sizeof(snd_ctrl)) < 0 || - write(audio.soundserver_pipe[1], set_name, - snd_ctrl.data_len) < 0 || - write(audio.soundserver_pipe[1], leveldir_current, - sizeof(TreeInfo)) < 0 || - write(audio.soundserver_pipe[1], ti, - sizeof(TreeInfo)) < 0 || - write(audio.soundserver_pipe[1], &str_size1, - sizeof(unsigned long)) < 0 || - write(audio.soundserver_pipe[1], &str_size2, - sizeof(unsigned long)) < 0 || - write(audio.soundserver_pipe[1], &str_size3, - sizeof(unsigned long)) < 0 || - write(audio.soundserver_pipe[1], leveldir_current->fullpath, - str_size1) < 0 || - write(audio.soundserver_pipe[1], ti->basepath, - str_size2) < 0 || - write(audio.soundserver_pipe[1], ti->fullpath, - str_size3) < 0) - { - Error(ERR_WARN, "cannot pipe to child process -- no sounds"); - audio.sound_available = audio.sound_enabled = FALSE; - return; - } + WriteReloadInfoToPipe(set_name, SND_CTRL_RELOAD_SOUNDS); #endif - -#endif -} - -void InitReloadSounds(char *set_name) -{ - InitReloadSoundsOrMusic(set_name, SND_CTRL_RELOAD_SOUNDS); } void InitReloadMusic(char *set_name) { - InitReloadSoundsOrMusic(set_name, SND_CTRL_RELOAD_MUSIC); + if (!audio.music_available) + return; + +#if defined(TARGET_SDL) || defined(TARGET_ALLEGRO) + ReloadCustomMusic(); +#elif defined(PLATFORM_UNIX) + WriteReloadInfoToPipe(set_name, SND_CTRL_RELOAD_MUSIC); +#endif } void FreeSound(void *ptr) @@ -2050,7 +2022,7 @@ void FreeAllSounds() return; printf("%s: FREEING SOUNDS ...\n", - audio.soundserver_pid == 0 ? "CHILD" : "PARENT"); + audio.mixer_pid == 0 ? "CHILD" : "PARENT"); for(i=0; i