ref: 9cc843c60027cb9365f3eaae3028343769d17a26
parent: 324c1d8776054394d30ea987f84c1ba2f1b1ff6f
author: Simon Howard <[email protected]>
date: Sat Aug 29 17:22:32 EDT 2009
Load MIDI file. Subversion-branch: /branches/opl-branch Subversion-revision: 1637
--- a/src/i_oplmusic.c
+++ b/src/i_oplmusic.c
@@ -40,6 +40,7 @@
#include "z_zone.h"
#include "opl.h"
+#include "midifile.h"
#define MAXMIDLENGTH (96 * 1024)
#define GENMIDI_NUM_INSTRS 128
@@ -507,6 +508,11 @@
{
return;
}
+
+ if (handle != NULL)
+ {
+ MIDI_FreeFile(handle);
+ }
}
// Determine whether memory block is a .mid file
@@ -544,6 +550,7 @@
static void *I_OPL_RegisterSong(void *data, int len)
{
+ midi_file_t *result;
char *filename;
if (!music_initialised)
@@ -567,8 +574,13 @@
ConvertMus(data, len, filename);
}
- // ....
+ result = MIDI_LoadFile(filename);
+ if (result == NULL)
+ {
+ fprintf(stderr, "I_OPL_RegisterSong: Failed to load MID.\n");
+ }
+
// remove file now
remove(filename);
@@ -575,7 +587,7 @@
Z_Free(filename);
- return NULL;
+ return result;
}
// Is the song playing?