jak-project/game/sound/989snd/musicbank.cpp

50 lines
1.7 KiB
C++
Raw Normal View History

2022-05-19 16:54:36 -04:00
#include "musicbank.h"
2022-05-19 16:54:36 -04:00
#include "ame_handler.h"
#include "midi_handler.h"
#include "common/log/log.h"
2022-05-19 16:54:36 -04:00
namespace snd {
std::optional<std::unique_ptr<SoundHandler>> MusicBank::MakeHandler(VoiceManager& vm,
u32 sound_id,
s32 vol,
s32 pan,
s32 pm,
s32 pb) {
auto& sound = Sounds[sound_id];
2022-05-19 16:54:36 -04:00
// 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<Midi>(MidiData);
if (sound.MIDIID == midi.ID) {
return std::make_unique<MidiHandler>(&midi, vm, sound, vol, pan, *this);
}
return std::nullopt;
} else if (sound.Type == 5) {
auto& midi = std::get<MultiMidi>(MidiData);
if (sound.MIDIID == midi.ID) {
return std::make_unique<AmeHandler>(&midi, vm, sound, vol, pan, *this);
}
return std::nullopt;
2022-05-19 16:54:36 -04:00
} else {
lg::error("Invalid music sound type");
return std::nullopt;
2022-05-19 16:54:36 -04:00
// error
}
}
std::optional<std::unique_ptr<SoundHandler>> MusicBank::MakeHandler(VoiceManager& vm,
u32 sound_id,
s32 vol,
s32 pan,
SndPlayParams& params) {
return std::nullopt;
}
2022-05-19 16:54:36 -04:00
} // namespace snd