void update_queued_clips_volume(int audioType, int new_vol) { for (int i = 0; i < play.new_music_queue_size; ++i) { // NOTE: if clip is uncached, the volume will be set from defaults when it is loaded SOUNDCLIP *sndclip = play.new_music_queue[i].cachedClip; if (sndclip) { ScriptAudioClip *clip = &game.audioClips[play.new_music_queue[i].audioClipIndex]; if (clip->type == audioType) sndclip->set_volume_percent(new_vol); } } }
SOUNDCLIP *load_sound_clip(ScriptAudioClip *audioClip, bool repeat) { if (!is_audiotype_allowed_to_play((AudioFileType)audioClip->fileType)) { return NULL; } update_clip_default_volume(audioClip); SOUNDCLIP *soundClip = NULL; AssetPath asset_name = get_audio_clip_assetpath(audioClip->bundlingType, audioClip->fileName); switch (audioClip->fileType) { case eAudioFileOGG: soundClip = my_load_static_ogg(asset_name, audioClip->defaultVolume, repeat); break; case eAudioFileMP3: soundClip = my_load_static_mp3(asset_name, audioClip->defaultVolume, repeat); break; case eAudioFileWAV: case eAudioFileVOC: soundClip = my_load_wave(asset_name, audioClip->defaultVolume, repeat); break; case eAudioFileMIDI: soundClip = my_load_midi(asset_name, repeat); break; case eAudioFileMOD: #ifndef PSP_NO_MOD_PLAYBACK soundClip = my_load_mod(asset_name, repeat); #else soundClip = NULL; #endif break; default: quitprintf("AudioClip.Play: invalid audio file type encountered: %d", audioClip->fileType); } if (soundClip != NULL) { soundClip->set_volume_percent(audioClip->defaultVolume); soundClip->soundType = audioClip->type; soundClip->sourceClip = audioClip; } return soundClip; }