1 // MIDI stuff follows.
\r
4 #include "dxxerror.h"
\r
8 hmp_file *hmp = NULL;
\r
10 int midi_volume = 255;
\r
11 int digi_midi_song_playing = 0;
\r
14 void digi_stop_current_song()
\r
16 if (digi_midi_song_playing)
\r
20 digi_midi_song_playing = 0;
\r
24 void digi_set_midi_volume(int n)
\r
35 // scale up from 0-127 to 0-0xffff
\r
36 mm_volume = (midi_volume << 1) | (midi_volume & 1);
\r
37 mm_volume |= (mm_volume << 8);
\r
40 midiOutSetVolume((HMIDIOUT)hmp->hmidi, mm_volume | mm_volume << 16);
\r
43 void digi_play_midi_song(char *filename, char *melodic_bank, char *drum_bank, int loop)
\r
46 if (!Digi_initialized)
\r
50 if (FindArg("-nosound"))
\r
53 digi_stop_current_song();
\r
55 if (filename == NULL)
\r
57 if (midi_volume < 1)
\r
60 if ((hmp = hmp_open(filename)))
\r
63 digi_midi_song_playing = 1;
\r
64 digi_set_midi_volume(midi_volume);
\r
67 printf("hmp_open failed\n");
\r
71 int sound_paused = 0;
\r
73 void digi_pause_midi()
\r
76 if (!Digi_initialized)
\r
80 if (sound_paused == 0)
\r
87 void digi_resume_midi()
\r
90 if (!Digi_initialized)
\r
94 Assert(sound_paused > 0);
\r
96 if (sound_paused == 1)
\r
98 // resume sound here
\r