mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-04 16:26:53 +00:00
Made MorphOS port use master makefile, few compilation fixes
svn-id: r4800
This commit is contained in:
parent
e0cfd49ef7
commit
31f6833f87
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
};
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "scummsys.h"
|
||||
#include "timer.h"
|
||||
|
||||
#ifndef __MORPHOS__
|
||||
static Scumm * scumm;
|
||||
|
||||
Timer::Timer(Scumm * parent) {
|
||||
@ -153,5 +154,5 @@ void Timer::releaseProcedure (TimerProc procedure) {
|
||||
}
|
||||
_timerRunning = true;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
typedef void (*TimerProc)(Scumm *);
|
||||
|
||||
#ifdef __MORPHOS__
|
||||
#include "morphos/morphos_timer.h"
|
||||
#include "morphos_timer.h"
|
||||
#else
|
||||
|
||||
class OSystem;
|
||||
|
Loading…
Reference in New Issue
Block a user