commit 0b8c63530f113a7fd92cbe3f54539f33c2cf095b
Author: Roman Fomin <rfomin@gmail.com>
AuthorDate: Mon Oct 25 10:51:46 2021 +0700
Commit: Roman Fomin <rfomin@gmail.com>
CommitDate: Mon Oct 25 10:51:46 2021 +0700
set initial tempo
---
src/i_winmusic.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/i_winmusic.c b/src/i_winmusic.c
index 5c70a43a..f444d112 100644
--- a/src/i_winmusic.c
+++ b/src/i_winmusic.c
@@ -421,7 +421,8 @@ void I_WIN_RegisterSong(char *filename)
{
int i;
midi_file_t *file;
- MIDIPROPTIMEDIV prop;
+ MIDIPROPTIMEDIV timediv;
+ MIDIPROPTEMPO tempo;
MMRESULT mmr;
file = MIDI_LoadFile(filename);
@@ -438,9 +439,9 @@ void I_WIN_RegisterSong(char *filename)
channel_volume[i] = 100;
}
- prop.cbStruct = sizeof(MIDIPROPTIMEDIV);
- prop.dwTimeDiv = MIDI_GetFileTimeDivision(file);
- mmr = midiStreamProperty(hMidiStream, (LPBYTE)&prop,
+ timediv.cbStruct = sizeof(MIDIPROPTIMEDIV);
+ timediv.dwTimeDiv = MIDI_GetFileTimeDivision(file);
+ mmr = midiStreamProperty(hMidiStream, (LPBYTE)&timediv,
MIDIPROP_SET | MIDIPROP_TIMEDIV);
if (mmr != MMSYSERR_NOERROR)
{
@@ -448,6 +449,17 @@ void I_WIN_RegisterSong(char *filename)
return;
}
+ // Set initial tempo.
+ tempo.cbStruct = sizeof(MIDIPROPTIMEDIV);
+ tempo.dwTempo = 500000; // 120 bmp
+ mmr = midiStreamProperty(hMidiStream, (LPBYTE)&tempo,
+ MIDIPROP_SET | MIDIPROP_TEMPO);
+ if (mmr != MMSYSERR_NOERROR)
+ {
+ MidiErrorMessageBox(mmr);
+ return;
+ }
+
MIDItoStream(file);
MIDI_FreeFile(file);