1 /* $Id: midi.c,v 1.4 2005-04-04 08:54:12 btb Exp $ */
\r
2 // MIDI stuff follows.
\r
9 hmp_file *hmp = NULL;
\r
11 int midi_volume = 255;
\r
12 int digi_midi_song_playing = 0;
\r
15 void digi_stop_current_song()
\r
17 if (digi_midi_song_playing)
\r
21 digi_midi_song_playing = 0;
\r
25 void digi_set_midi_volume(int n)
\r
36 // scale up from 0-127 to 0-0xffff
\r
37 mm_volume = (midi_volume << 1) | (midi_volume & 1);
\r
38 mm_volume |= (mm_volume << 8);
\r
41 midiOutSetVolume((HMIDIOUT)hmp->hmidi, mm_volume | mm_volume << 16);
\r
44 void digi_play_midi_song(char *filename, char *melodic_bank, char *drum_bank, int loop)
\r
47 if (!digi_initialised)
\r
51 if (FindArg("-nosound"))
\r
54 digi_stop_current_song();
\r
56 if (filename == NULL)
\r
58 if (midi_volume < 1)
\r
61 if ((hmp = hmp_open(filename)))
\r
64 digi_midi_song_playing = 1;
\r
65 digi_set_midi_volume(midi_volume);
\r
68 printf("hmp_open failed\n");
\r
72 int sound_paused = 0;
\r
74 void digi_pause_midi()
\r
77 if (!digi_initialised)
\r
81 if (sound_paused == 0)
\r
88 void digi_resume_midi()
\r
91 if (!digi_initialised)
\r
95 Assert(sound_paused > 0);
\r
97 if (sound_paused == 1)
\r
99 // resume sound here
\r