#include "musicbank.h" #include "ame_handler.h" #include "midi_handler.h" #include "common/log/log.h" namespace snd { std::optional> MusicBank::MakeHandler(VoiceManager& vm, u32 sound_id, s32 vol, s32 pan, s32 pm, s32 pb) { auto& sound = Sounds[sound_id]; // FIXME: global midi list // search only local bank for now // (always the case in jak games anyway) if (sound.Type == 4) { auto& midi = std::get(MidiData); if (sound.MIDIID == midi.ID) { return std::make_unique(&midi, vm, sound, vol, pan, *this); } return std::nullopt; } else if (sound.Type == 5) { auto& midi = std::get(MidiData); if (sound.MIDIID == midi.ID) { return std::make_unique(&midi, vm, sound, vol, pan, *this); } return std::nullopt; } else { lg::error("Invalid music sound type"); return std::nullopt; // error } } std::optional> MusicBank::MakeHandler(VoiceManager& vm, u32 sound_id, s32 vol, s32 pan, SndPlayParams& params) { return std::nullopt; } } // namespace snd