[Scummvm-cvs-logs] CVS: scummvm-new/sound mididrv.cpp,1.1.1.1,1.2

Ruediger Hanke tomjoad at users.sourceforge.net
Thu Aug 22 05:10:03 CEST 2002


Update of /cvsroot/scummvm/scummvm-new/sound
In directory usw-pr-cvs1:/tmp/cvs-serv29460/sound

Modified Files:
	mididrv.cpp 
Log Message:
Changed MorphOS MIDI code so that data sent from different threads are no longer a problem. Ensure Midi driver is closed, otherwise no other MIDI application will run after ScummVM has exited.

Index: mididrv.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm-new/sound/mididrv.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- mididrv.cpp	21 Aug 2002 16:07:42 -0000	1.1.1.1
+++ mididrv.cpp	22 Aug 2002 12:09:06 -0000	1.2
@@ -292,8 +292,9 @@
 
 #include <clib/alib_protos.h>
 #include <proto/exec.h>
+#include <proto/amidi.h>
 
-extern struct IOMidiRequest *ScummMidiRequest;
+#include "morphos_sound.h"
 
 /* MorphOS MIDI driver */
 class MidiDriver_AMIDI:public MidiDriver {
@@ -319,11 +320,13 @@
 int MidiDriver_AMIDI::open(int mode)
 {
 	_mode = mode;
+	init_morphos_music(0);
 	return 0;
 }
 
 void MidiDriver_AMIDI::close()
 {
+	exit_morphos_music();
 	_mode = 0;
 }
 
@@ -333,11 +336,8 @@
 		error("MidiDriver_AMIDI:send called but driver is not in simple mode");
 
 	if (ScummMidiRequest) {
-		ULONG midi_data = b;				// you never know about an int's size ;-)
-		ScummMidiRequest->amr_Std.io_Command = CMD_WRITE;
-		ScummMidiRequest->amr_Std.io_Data = &midi_data;
-		ScummMidiRequest->amr_Std.io_Length = 4;
-		DoIO((struct IORequest *)ScummMidiRequest);
+		ULONG midi_data = READ_LE_UINT32(&b);
+		SendShortMidiMsg(ScummMidiRequest, midi_data);
 	}
 }
 





More information about the Scummvm-git-logs mailing list