|
@@ -12,35 +12,37 @@ static struct {
|
|
|
int new_vol;
|
|
|
HANDLE wait_obj;
|
|
|
UINT_PTR devid;
|
|
|
char start_song[260];
|
|
|
} _midi;
|
|
|
|
|
|
static void Win32MidiPlaySong(const char *filename)
|
|
|
static FMusicDriver_Win32 iFMusicDriver_Win32;
|
|
|
|
|
|
void MusicDriver_Win32::PlaySong(const char *filename)
|
|
|
{
|
|
|
strcpy(_midi.start_song, filename);
|
|
|
_midi.playing = true;
|
|
|
_midi.stop_song = false;
|
|
|
SetEvent(_midi.wait_obj);
|
|
|
}
|
|
|
|
|
|
static void Win32MidiStopSong()
|
|
|
void MusicDriver_Win32::StopSong()
|
|
|
{
|
|
|
if (_midi.playing) {
|
|
|
_midi.stop_song = true;
|
|
|
_midi.start_song[0] = '\0';
|
|
|
SetEvent(_midi.wait_obj);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static bool Win32MidiIsSongPlaying()
|
|
|
bool MusicDriver_Win32::IsSongPlaying()
|
|
|
{
|
|
|
return _midi.playing;
|
|
|
}
|
|
|
|
|
|
static void Win32MidiSetVolume(byte vol)
|
|
|
void MusicDriver_Win32::SetVolume(byte vol)
|
|
|
{
|
|
|
_midi.new_vol = vol;
|
|
|
SetEvent(_midi.wait_obj);
|
|
|
}
|
|
|
|
|
|
static MCIERROR CDECL MidiSendCommand(const char* cmd, ...)
|
|
@@ -115,13 +117,13 @@ static DWORD WINAPI MidiThread(LPVOID ar
|
|
|
} while (!_midi.terminate);
|
|
|
|
|
|
DeleteObject(_midi.wait_obj);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
static const char *Win32MidiStart(const char * const *parm)
|
|
|
const char *MusicDriver_Win32::Start(const char * const *parm)
|
|
|
{
|
|
|
MIDIOUTCAPS midicaps;
|
|
|
DWORD threadId;
|
|
|
UINT nbdev;
|
|
|
UINT_PTR dev;
|
|
|
char buf[16];
|
|
@@ -143,20 +145,11 @@ static const char *Win32MidiStart(const
|
|
|
|
|
|
if (CreateThread(NULL, 8192, MidiThread, 0, 0, &threadId) == NULL) return "Failed to create thread";
|
|
|
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
static void Win32MidiStop()
|
|
|
void MusicDriver_Win32::Stop()
|
|
|
{
|
|
|
_midi.terminate = true;
|
|
|
SetEvent(_midi.wait_obj);
|
|
|
}
|
|
|
|
|
|
const HalMusicDriver _win32_music_driver = {
|
|
|
Win32MidiStart,
|
|
|
Win32MidiStop,
|
|
|
Win32MidiPlaySong,
|
|
|
Win32MidiStopSong,
|
|
|
Win32MidiIsSongPlaying,
|
|
|
Win32MidiSetVolume,
|
|
|
};
|