From 31f6833f87da3af3c480d0b6e605c3565efef1d0 Mon Sep 17 00:00:00 2001 From: Ruediger Hanke Date: Thu, 22 Aug 2002 10:43:50 +0000 Subject: Made MorphOS port use master makefile, few compilation fixes svn-id: r4800 --- backends/morphos/build.rules | 8 +++++++- backends/morphos/morphos_sound.cpp | 2 +- backends/morphos/morphos_timer.cpp | 11 ++++++----- backends/morphos/morphos_timer.h | 14 +++++++------- 4 files changed, 21 insertions(+), 14 deletions(-) (limited to 'backends') diff --git a/backends/morphos/build.rules b/backends/morphos/build.rules index d5b853984a..29bf59d1b3 100644 --- a/backends/morphos/build.rules +++ b/backends/morphos/build.rules @@ -1,5 +1,11 @@ -CC = g++ +CXX = g++ CFLAGS = -Wno-multichar -fstrength-reduce -fno-rtti -O2 DEFINES = -DNO_PPCINLINE_STDARG -DNO_PPCINLINE_VARARGS LDFLAGS = -noixemul -s LIBS = -lamiga -lamigastubs -lcdda +INCLUDES += -Ibackends/morphos +MODULES += backends/morphos +OBJS += backends/morphos/morphos.o backends/morphos/morphos_scaler.o \ + backends/morphos/morphos_sound.o backends/morphos/morphos_start.o \ + backends/morphos/morphos_timer.o + diff --git a/backends/morphos/morphos_sound.cpp b/backends/morphos/morphos_sound.cpp index 0585b8708b..f2df81d789 100644 --- a/backends/morphos/morphos_sound.cpp +++ b/backends/morphos/morphos_sound.cpp @@ -66,7 +66,7 @@ bool init_morphos_music(ULONG MidiUnit) if (ScummMidiRequest) { ScummMidiRequest->amr_Version = 2; - if (OpenDevice("amidi.device", MidiUnit, (IORequest *) ScummMidiRequest, AMIDIF_MIDISERVER)) + if (OpenDevice("amidi.device", MidiUnit, (IORequest *) ScummMidiRequest, 0)) { DeleteIORequest((IORequest *) ScummMidiRequest); DeleteMsgPort(ScummMidiPort); diff --git a/backends/morphos/morphos_timer.cpp b/backends/morphos/morphos_timer.cpp index d106b9a1a9..c496f1ff29 100644 --- a/backends/morphos/morphos_timer.cpp +++ b/backends/morphos/morphos_timer.cpp @@ -50,6 +50,7 @@ Timer::Timer(Scumm * system) ThreadEmulFunc.StackSize = 16000; ThreadEmulFunc.Extension = 0; ThreadEmulFunc.Arg1 = (ULONG) this; + ThreadEmulFunc.Arg2 = (ULONG) system; TimerServiceTags[0].ti_Data = (ULONG) &ThreadEmulFunc; TimerServiceThread = CreateNewProc(TimerServiceTags); } @@ -73,17 +74,17 @@ void Timer::release() { } -bool Timer::installProcedure(int ((*procedure)(int)), int32 interval) +bool Timer::installProcedure(TimerProc procedure, int32 interval) { return SendMsg(TSM_MSGID_ADDTIMER, procedure, interval); } -void Timer::releaseProcedure(int ((*procedure)(int))) +void Timer::releaseProcedure(TimerProc procedure) { SendMsg(TSM_MSGID_REMTIMER, procedure, 0); } -bool Timer::SendMsg(ULONG msg_id, int ((*procedure)(int)), LONG interval) +bool Timer::SendMsg(ULONG msg_id, TimerProc procedure, LONG interval) { if (TimerServiceThread == NULL) return false; @@ -115,7 +116,7 @@ bool Timer::SendMsg(ULONG msg_id, int ((*procedure)(int)), LONG interval) return true; } -void Timer::TimerService(Timer *this_ptr) +void Timer::TimerService(Timer *this_ptr, Scumm *system) { MsgPort *port = &((Process *) FindTask(NULL))->pr_MsgPort; ULONG port_bit = 1 << port->mp_SigBit; @@ -215,7 +216,7 @@ void Timer::TimerService(Timer *this_ptr) timerequest *req = timer_slots[t].ts_IORequest; WaitIO((IORequest *) req); interval = timer_slots[t].ts_Interval; - (*timer_slots[t].ts_Callback)(interval); + (*timer_slots[t].ts_Callback)(system); GetSysTime(&end_callback); SubTime(&end_callback, &start_callback); interval -= end_callback.tv_sec*1000+end_callback.tv_micro/1000+40; diff --git a/backends/morphos/morphos_timer.h b/backends/morphos/morphos_timer.h index 1593b29a5c..05f710719a 100644 --- a/backends/morphos/morphos_timer.h +++ b/backends/morphos/morphos_timer.h @@ -44,13 +44,13 @@ class OSystem; #define TSM_MSGID_ADDTIMER 0 -#define TSM_MSGID_REMTIMER 1 +#define TSM_MSGID_REMTIMER 1 struct TimerServiceMessage { Message tsm_Message; ULONG tsm_MsgID; - int ((*tsm_Callback)(int)); + TimerProc tsm_Callback; LONG tsm_Interval; }; @@ -62,12 +62,12 @@ class Timer bool init(); void release(); - bool installProcedure(int ((*procedure)(int)), int32 interval); - void releaseProcedure(int ((*procedure)(int))); + bool installProcedure(TimerProc procedure, int32 interval); + void releaseProcedure(TimerProc procedure); protected: - bool SendMsg(ULONG MsgID, int ((*procedure)(int)), LONG interval); - static void TimerService(Timer *); + bool SendMsg(ULONG MsgID, TimerProc procedure, LONG interval); + static void TimerService(Timer *, Scumm *); Process *TimerServiceThread; SignalSemaphore TimerServiceSemaphore; @@ -77,7 +77,7 @@ class Timer MsgPort *ts_Port; timerequest *ts_IORequest; ULONG ts_SignalBit; - int ((*ts_Callback)(int)); + TimerProc ts_Callback; LONG ts_Interval; }; }; -- cgit v1.2.3