Exemple #1
0
void IAGSEngine::PlaySoundChannel (int32 channel, int32 soundType, int32 volume, int32 loop, const char *filename) {
  stop_and_destroy_channel (channel);
  SOUNDCLIP *newcha = NULL;

  if (((soundType == PSND_MP3STREAM) || (soundType == PSND_OGGSTREAM)) 
    && (loop != 0))
    quit("IAGSEngine::PlaySoundChannel: streamed samples cannot loop");

  if (soundType == PSND_WAVE)
    newcha = my_load_wave (filename, volume, loop);
  else if (soundType == PSND_MP3STREAM)
    newcha = my_load_mp3 (filename, volume);
  else if (soundType == PSND_OGGSTREAM)
    newcha = my_load_ogg (filename, volume);
  else if (soundType == PSND_MP3STATIC)
    newcha = my_load_static_mp3 (filename, volume, (loop != 0));
  else if (soundType == PSND_OGGSTATIC)
    newcha = my_load_static_ogg (filename, volume, (loop != 0));
  else if (soundType == PSND_MIDI) {
    if (midi_pos >= 0)
      quit("!IAGSEngine::PlaySoundChannel: MIDI already in use");
    newcha = my_load_midi (filename, loop);
    newcha->set_volume (volume);
  }
  else if (soundType == PSND_MOD) {
    newcha = my_load_mod (filename, loop);
    newcha->set_volume (volume);
  }
  else
    quit("!IAGSEngine::PlaySoundChannel: unknown sound type");

  channels[channel] = newcha;
}
Exemple #2
0
SOUNDCLIP *load_sound_and_play(ScriptAudioClip *aclip, bool repeat)
{
    SOUNDCLIP *soundfx = load_sound_clip(aclip, repeat);

    if (soundfx != NULL) {
        if (soundfx->play() == 0)
            soundfx = NULL;
    }

    return soundfx;
}
Exemple #3
0
SOUNDCLIP *load_sound_from_path(int soundNumber, int volume, bool repeat) 
{
    SOUNDCLIP *soundfx = load_sound_clip_from_old_style_number(false, soundNumber, repeat);

    if (soundfx != NULL) {
        if (soundfx->play() == 0)
            soundfx = NULL;
    }

    return soundfx;
}
Exemple #4
0
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);
        }
    }
}
Exemple #5
0
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;
}
Exemple #6
0
SOUNDCLIP *load_sound_clip(ScriptAudioClip *audioClip, bool repeat)
{
    const char *clipFileName = get_audio_clip_file_name(audioClip);
    if ((clipFileName == NULL) || (usetup.digicard == DIGI_NONE))
    {
        return NULL;
    }

    update_clip_default_volume(audioClip);

    SOUNDCLIP *soundClip = NULL;
    switch (audioClip->fileType)
    {
    case eAudioFileOGG:
        soundClip = my_load_static_ogg(clipFileName, audioClip->defaultVolume, repeat);
        break;
    case eAudioFileMP3:
        soundClip = my_load_static_mp3(clipFileName, audioClip->defaultVolume, repeat);
        break;
    case eAudioFileWAV:
    case eAudioFileVOC:
        soundClip = my_load_wave(clipFileName, audioClip->defaultVolume, repeat);
        break;
    case eAudioFileMIDI:
        soundClip = my_load_midi(clipFileName, repeat);
        break;
    case eAudioFileMOD:
#ifndef PSP_NO_MOD_PLAYBACK
        soundClip = my_load_mod(clipFileName, repeat);
#else
        soundClip = NULL;
#endif
        break;
    default:
        quitprintf("AudioClip.Play: invalid audio file type encountered: %d", audioClip->fileType);
    }
    if (soundClip != NULL)
    {
        soundClip->set_volume_origin(audioClip->defaultVolume);
        soundClip->soundType = audioClip->type;
        soundClip->sourceClip = audioClip;
    }
    return soundClip;
}