Change: DOS music loading for non-Windows music drivers

This commit is contained in:
Niels Martin Hansen
2018-03-21 17:12:29 +01:00
committed by Michael Lutz
parent 458e441a4c
commit a8080f14a9
10 changed files with 111 additions and 28 deletions

View File

@@ -30,6 +30,7 @@
#include "../stdafx.h"
#include "qtmidi.h"
#include "midifile.hpp"
#include "../debug.h"
#include "../base_media_base.h"
@@ -261,10 +262,12 @@ void MusicDriver_QtMidi::Stop()
*/
void MusicDriver_QtMidi::PlaySong(const MusicSongInfo &song)
{
if (song.filetype != MTT_STANDARDMIDI) return;
if (!_quicktime_started) return;
DEBUG(driver, 2, "qtmidi: trying to play '%s'", filename);
std::string filename = MidiFile::GetSMFFile(song);
if (filename.empty()) return;
DEBUG(driver, 2, "qtmidi: trying to play '%s'", filename.c_str());
switch (_quicktime_state) {
case QT_STATE_PLAY:
StopSong();
@@ -278,12 +281,12 @@ void MusicDriver_QtMidi::PlaySong(const MusicSongInfo &song)
FALLTHROUGH;
case QT_STATE_IDLE:
LoadMovieForMIDIFile(song.filename, &_quicktime_movie);
LoadMovieForMIDIFile(filename.c_str(), &_quicktime_movie);
SetMovieVolume(_quicktime_movie, VOLUME);
StartMovie(_quicktime_movie);
_quicktime_state = QT_STATE_PLAY;
}
DEBUG(driver, 3, "qtmidi: playing '%s'", filename);
DEBUG(driver, 3, "qtmidi: playing '%s'", filename.c_str());
}