[Scummvm-cvs-logs] CVS: scummvm-new/backends/morphos morphos.cpp,1.1.1.1,1.2 morphos.h,1.1.1.1,1.2 morphos_sound.cpp,1.2,1.3 morphos_start.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/backends/morphos
In directory usw-pr-cvs1:/tmp/cvs-serv29460/backends/morphos

Modified Files:
	morphos.cpp morphos.h morphos_sound.cpp morphos_start.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: morphos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm-new/backends/morphos/morphos.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- morphos.cpp	21 Aug 2002 16:07:14 -0000	1.1.1.1
+++ morphos.cpp	22 Aug 2002 12:09:06 -0000	1.2
@@ -50,6 +50,7 @@
 #include <time.h>
 
 #include "morphos.h"
+#include "morphos_sound.h"
 #include "morphos_scaler.h"
 
 static TagItem FindCDTags[] = { { CDFA_VolumeName, 0 },

Index: morphos.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm-new/backends/morphos/morphos.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- morphos.h	21 Aug 2002 16:07:14 -0000	1.1.1.1
+++ morphos.h	22 Aug 2002 12:09:06 -0000	1.2
@@ -24,8 +24,6 @@
 #ifndef MORPHOS_MORPHOS_H
 #define MORPHOS_MORPHOS_H
 
-#include <exec/semaphores.h>
-#include <devices/amidi.h>
 #include <graphics/regions.h>
 #include <intuition/intuition.h>
 #include <intuition/screens.h>
@@ -187,20 +185,9 @@
 		int   GameID;
 };
 
-int morphos_sound_thread(OSystem_MorphOS *syst, ULONG SampleType);
-bool init_morphos_music(ULONG MidiUnit);
-void exit_morphos_music();
-
 int morphos_main(int argc, char *argv[]);
 
 extern OSystem_MorphOS *TheSystem;
-extern SignalSemaphore ScummMusicThreadRunning;
-extern SignalSemaphore ScummSoundThreadRunning;
-
-extern STRPTR ScummMusicDriver;
-extern LONG   ScummMidiUnit;
-extern IOMidiRequest *ScummMidiRequest;
-extern timerequest   *MusicTimerIORequest;
 
 #endif
 

Index: morphos_sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm-new/backends/morphos/morphos_sound.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- morphos_sound.cpp	22 Aug 2002 10:43:50 -0000	1.2
+++ morphos_sound.cpp	22 Aug 2002 12:09:06 -0000	1.3
@@ -35,6 +35,7 @@
 #include <proto/ahi.h>
 
 #include "morphos.h"
+#include "morphos_sound.h"
 
 #define AHI_BUF_SIZE	 (8*1024)
 
@@ -51,8 +52,8 @@
 
 static MsgPort 	   *ScummMidiPort = NULL;
 		 IOMidiRequest *ScummMidiRequest = NULL;
-static MsgPort       *MusicTimerMsgPort = NULL;
-		 timerequest   *MusicTimerIORequest = NULL;
+
+		 Device        *AMidiBase = NULL;
 
 bool init_morphos_music(ULONG MidiUnit)
 {
@@ -73,6 +74,7 @@
 					ScummMidiRequest = NULL;
 					ScummMidiPort = NULL;
 				}
+				AMidiBase = ScummMidiRequest->amr_Std.io_Device;
 			}
 			else
 			{
@@ -88,33 +90,6 @@
 		}
 	}
 
-	MusicTimerMsgPort = CreateMsgPort();
-	if (MusicTimerMsgPort)
-	{
-		MusicTimerIORequest = (timerequest *) CreateIORequest(MusicTimerMsgPort, sizeof (timerequest));
-		if (MusicTimerIORequest)
-		{
-			if (OpenDevice("timer.device", UNIT_MICROHZ, (IORequest *) MusicTimerIORequest, 0))
-			{
-				DeleteIORequest((IORequest *) MusicTimerIORequest);
-				DeleteMsgPort(MusicTimerMsgPort);
-				MusicTimerIORequest = NULL;
-				MusicTimerMsgPort = NULL;
-			}
-		}
-		else
-		{
-			DeleteMsgPort(MusicTimerMsgPort);
-			MusicTimerMsgPort = NULL;
-		}
-	}
-
-	if (!MusicTimerIORequest)
-	{
-		warning("Could not open timer device - music will not play");
-		return false;
-	}
-
 	return true;
 }
 
@@ -126,13 +101,7 @@
 		CloseDevice((IORequest *) ScummMidiRequest);
 		DeleteIORequest((IORequest *) ScummMidiRequest);
 		DeleteMsgPort(ScummMidiPort);
-	}
-
-	if (MusicTimerIORequest)
-	{
-		CloseDevice((IORequest *) MusicTimerIORequest);
-		DeleteIORequest((IORequest *) MusicTimerIORequest);
-		DeleteMsgPort(MusicTimerMsgPort);
+		AMidiBase = NULL;
 	}
 }
 

Index: morphos_start.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm-new/backends/morphos/morphos_start.cpp,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -d -r1.1.1.1 -r1.2
--- morphos_start.cpp	21 Aug 2002 16:07:15 -0000	1.1.1.1
+++ morphos_start.cpp	22 Aug 2002 12:09:06 -0000	1.2
@@ -38,6 +38,7 @@
 #include "scumm.h"
 #include "morphos.h"
 #include "morphos_scaler.h"
+#include "morphos_sound.h"
 
 extern "C" WBStartup *_WBenchMsg;
 





More information about the Scummvm-git-logs mailing list