X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsound.c;h=b9fd88c66a460dd72e58300cba60644236440794;hb=d703f1f2c94e753d668d793e7d2c6c6c71fc9fa8;hp=8b01135fea198c280f2a42e600ce668bbdf12b20;hpb=3607ef8e4000754063935d908053d564de92c0a2;p=rocksndiamonds.git diff --git a/src/libgame/sound.c b/src/libgame/sound.c index 8b01135f..b9fd88c6 100644 --- a/src/libgame/sound.c +++ b/src/libgame/sound.c @@ -237,7 +237,7 @@ static boolean TestAudioDevices(void) int i; /* look for available audio devices, starting with preferred ones */ - for (i=0; i= 0) break; @@ -569,8 +569,7 @@ static void ReadReloadInfoFromPipe(SoundControl *snd_ctrl) &setup.override_level_sounds : &setup.override_level_music); - if (set_identifier) - free(set_identifier); + checked_free(set_identifier); set_identifier = checked_malloc(snd_ctrl->data_len); @@ -579,16 +578,12 @@ static void ReadReloadInfoFromPipe(SoundControl *snd_ctrl) if (ti == NULL) ti = *ti_ptr = checked_calloc(sizeof(TreeInfo)); - if (leveldir_current->fullpath != NULL) - free(leveldir_current->fullpath); - if (leveldir_current->sounds_path != NULL) - free(leveldir_current->sounds_path); - if (leveldir_current->music_path != NULL) - free(leveldir_current->music_path); - if (ti->basepath != NULL) - free(ti->basepath); - if (ti->fullpath != NULL) - free(ti->fullpath); + + checked_free(leveldir_current->fullpath); + checked_free(leveldir_current->sounds_path); + checked_free(leveldir_current->music_path); + checked_free(ti->basepath); + checked_free(ti->fullpath); if (read(audio.mixer_pipe[0], set_identifier, snd_ctrl->data_len) != snd_ctrl->data_len || @@ -645,7 +640,7 @@ void Mixer_InitChannels() { int i; - for(i=0; i= num_sounds) + if (snd_ctrl.nr < 0 || snd_ctrl.nr >= num_sounds) return; snd_info = getSoundInfoEntryFromSoundID(snd_ctrl.nr); @@ -928,7 +923,7 @@ static void Mixer_InsertSound(SoundControl snd_ctrl) } /* check if (and how often) this sound sample is already playing */ - for (k=0, i=audio.first_sound_channel; i 0 && IS_LOOP(snd_ctrl)) { - for(i=audio.first_sound_channel; idata_ptr + num_channels * sample_pos; - for (i=0; inum_channels == 1 ? 0 : i); - for (j=0; jdata_ptr + num_channels * sample_pos; - for (i=0; inum_channels == 1 ? 0 : i); - for (j=0; j= mixer[i].data_len) Mixer_StopChannel(i); - for(i=0; i> 8) ^ 0x80; /* finally play the sound fragment */ @@ -1449,7 +1444,7 @@ void Mixer_Main() FD_ZERO(&mixer_fdset); FD_SET(audio.mixer_pipe[0], &mixer_fdset); - while(1) /* wait for sound playing commands from client */ + while (1) /* wait for sound playing commands from client */ { struct timeval delay = { 0, 0 }; @@ -1822,11 +1817,11 @@ static void *Load_WAV(char *filename) int i; if (snd_ctrl->format == AUDIO_FORMAT_U8) - for (i=0; i '%s'\n", music->filename); -#endif - if (strcmp(basename, music->filename) == 0) { music_already_used = TRUE; @@ -1926,8 +1928,7 @@ void LoadCustomMusic_NoConf(void) #if 0 if (FileIsSound(basename) || FileIsMusic(basename)) - printf("DEBUG: loading music '%s' ... [%d]\n", - basename, music_already_used); + printf("DEBUG: loading music '%s' ...\n", basename); #endif if (draw_init_text) @@ -1935,10 +1936,15 @@ void LoadCustomMusic_NoConf(void) filename = getPath2(music_directory, basename); +#if 1 + if (FileIsMusic(basename)) + mus_info = Load_WAV_or_MOD(filename); +#else if (FileIsSound(basename)) mus_info = Load_WAV(filename); else if (FileIsMusic(basename)) mus_info = Load_MOD(filename); +#endif free(filename); @@ -1954,10 +1960,6 @@ void LoadCustomMusic_NoConf(void) closedir(dir); draw_init_text = FALSE; - - if (num_music_noconf == 0) - Error(ERR_WARN, "cannot find any valid music files in directory '%s'", - music_directory); } int getSoundListSize() @@ -2054,7 +2056,7 @@ void InitSoundList(struct ConfigInfo *config_list, int num_file_list_entries, sound_info->dynamic_file_list = NULL; sound_info->num_suffix_list_entries = 0; - for (i=0; config_suffix_list[i].token != NULL; i++) + for (i = 0; config_suffix_list[i].token != NULL; i++) sound_info->num_suffix_list_entries++; sound_info->suffix_list = config_suffix_list; @@ -2062,23 +2064,23 @@ void InitSoundList(struct ConfigInfo *config_list, int num_file_list_entries, /* ---------- initialize base prefix and suffixes lists ---------- */ sound_info->num_base_prefixes = 0; - for (i=0; base_prefixes[i] != NULL; i++) + for (i = 0; base_prefixes[i] != NULL; i++) sound_info->num_base_prefixes++; sound_info->num_ext1_suffixes = 0; - for (i=0; ext1_suffixes[i] != NULL; i++) + for (i = 0; ext1_suffixes[i] != NULL; i++) sound_info->num_ext1_suffixes++; sound_info->num_ext2_suffixes = 0; - for (i=0; ext2_suffixes[i] != NULL; i++) + for (i = 0; ext2_suffixes[i] != NULL; i++) sound_info->num_ext2_suffixes++; sound_info->num_ext3_suffixes = 0; - for (i=0; ext3_suffixes[i] != NULL; i++) + for (i = 0; ext3_suffixes[i] != NULL; i++) sound_info->num_ext3_suffixes++; sound_info->num_ignore_tokens = 0; - for (i=0; ignore_tokens[i] != NULL; i++) + for (i = 0; ignore_tokens[i] != NULL; i++) sound_info->num_ignore_tokens++; sound_info->base_prefixes = base_prefixes; @@ -2134,7 +2136,7 @@ void InitMusicList(struct ConfigInfo *config_list, int num_file_list_entries, music_info->dynamic_file_list = NULL; music_info->num_suffix_list_entries = 0; - for (i=0; config_suffix_list[i].token != NULL; i++) + for (i = 0; config_suffix_list[i].token != NULL; i++) music_info->num_suffix_list_entries++; music_info->suffix_list = config_suffix_list; @@ -2142,23 +2144,23 @@ void InitMusicList(struct ConfigInfo *config_list, int num_file_list_entries, /* ---------- initialize base prefix and suffixes lists ---------- */ music_info->num_base_prefixes = 0; - for (i=0; base_prefixes[i] != NULL; i++) + for (i = 0; base_prefixes[i] != NULL; i++) music_info->num_base_prefixes++; music_info->num_ext1_suffixes = 0; - for (i=0; ext1_suffixes[i] != NULL; i++) + for (i = 0; ext1_suffixes[i] != NULL; i++) music_info->num_ext1_suffixes++; music_info->num_ext2_suffixes = 0; - for (i=0; ext2_suffixes[i] != NULL; i++) + for (i = 0; ext2_suffixes[i] != NULL; i++) music_info->num_ext2_suffixes++; music_info->num_ext3_suffixes = 0; - for (i=0; ext3_suffixes[i] != NULL; i++) + for (i = 0; ext3_suffixes[i] != NULL; i++) music_info->num_ext3_suffixes++; music_info->num_ignore_tokens = 0; - for (i=0; ignore_tokens[i] != NULL; i++) + for (i = 0; ignore_tokens[i] != NULL; i++) music_info->num_ignore_tokens++; music_info->base_prefixes = base_prefixes; @@ -2183,7 +2185,7 @@ void InitMusicList(struct ConfigInfo *config_list, int num_file_list_entries, /* ---------- initialize artwork loading/freeing functions ---------- */ - music_info->load_artwork = Load_MOD; + music_info->load_artwork = Load_WAV_or_MOD; music_info->free_artwork = FreeMusic; } @@ -2377,8 +2379,7 @@ void FreeSound(void *ptr) #endif } - if (sound->source_filename) - free(sound->source_filename); + checked_free(sound->source_filename); free(sound); } @@ -2414,7 +2415,7 @@ static void FreeAllMusic_NoConf() if (Music_NoConf == NULL) return; - for(i=0; i < num_music_noconf; i++) + for (i = 0; i < num_music_noconf; i++) FreeMusic(Music_NoConf[i]); free(Music_NoConf);