diff options
Diffstat (limited to 'backends/morphos')
| -rw-r--r-- | backends/morphos/morphos.cpp | 27 | ||||
| -rw-r--r-- | backends/morphos/morphos.h | 12 |
2 files changed, 8 insertions, 31 deletions
diff --git a/backends/morphos/morphos.cpp b/backends/morphos/morphos.cpp index d565a57d6c..c98a8d305d 100644 --- a/backends/morphos/morphos.cpp +++ b/backends/morphos/morphos.cpp @@ -97,7 +97,6 @@ OSystem_MorphOS::OSystem_MorphOS(SCALERTYPE gfx_mode, bool full_screen) ScummScreenBuffer[1] = NULL; ScummRenderTo = NULL; ScummNoCursor = NULL; - ScummMusicThread = NULL; ScummSoundThread = NULL; ScummWinX = -1; ScummWinY = -1; @@ -323,24 +322,11 @@ void OSystem_MorphOS::delay_msecs(uint msecs) TimeDelay(UNIT_MICROHZ, 0, msecs*1000); } -void OSystem_MorphOS::set_timer(int timer, int (*callback)(int)) +void OSystem_MorphOS::set_timer(TimerProc callback, int timer) { warning("set_timer() unexpectedly called"); } -void OSystem_MorphOS::create_thread(ThreadProc *proc, void *param) -{ - MusicStartup.mn_Node.ln_Type = NT_MESSAGE; - MusicStartup.mn_ReplyPort = ThreadPort; - MusicStartup.mn_Length = sizeof(MusicStartup); - - ScummMusicThread = CreateNewProcTags(NP_Entry, (ULONG) proc, NP_CodeType, CODETYPE_PPC, - NP_Name, (ULONG) "ScummVM Music Thread", - NP_Priority, 40, NP_StackSize, 32000, - NP_StartupMsg, &MusicStartup, - NP_PPC_Arg1, (ULONG) param, TAG_DONE); -} - OSystem::MutexRef OSystem_MorphOS::create_mutex() { SignalSemaphore *sem = (SignalSemaphore *) AllocVec(sizeof (SignalSemaphore), MEMF_PUBLIC); @@ -518,13 +504,6 @@ void OSystem_MorphOS::quit() { int num_threads = 0; - if (ScummMusicThread) - { - num_threads++; - Signal((Task *) ScummMusicThread, SIGBREAKF_CTRL_C); - ScummMusicThread = NULL; - } - if (ScummSoundThread) { num_threads++; @@ -532,6 +511,8 @@ void OSystem_MorphOS::quit() ScummSoundThread = NULL; } + // TODO: this code could probably greatly simplified now that there is + // only one thread left... while (num_threads > 0) { Message* msg; @@ -1463,7 +1444,7 @@ void OSystem_MorphOS::set_mouse_cursor(const byte *buf, uint w, uint h, int hots UndrawMouse(); } -bool OSystem_MorphOS::set_sound_proc(OSystem::SoundProc *proc, void *param, OSystem::SoundFormat format) +bool OSystem_MorphOS::set_sound_proc(OSystem::SoundProc proc, void *param, OSystem::SoundFormat format) { if (ScummSoundThread) { diff --git a/backends/morphos/morphos.h b/backends/morphos/morphos.h index 3164af83b4..deea09bbf7 100644 --- a/backends/morphos/morphos.h +++ b/backends/morphos/morphos.h @@ -37,7 +37,7 @@ class OSystem_MorphOS : public OSystem { public: - OSystem_MorphOS(SCALERTYPE gfx_mode, bool full_screen); + OSystem_MorphOS(SCALERTYPE gfx_mode, bool full_screen); virtual ~OSystem_MorphOS(); bool Initialise(); @@ -85,7 +85,7 @@ class OSystem_MorphOS : public OSystem virtual void delay_msecs(uint msecs); // Add a new callback timer - virtual void set_timer(int timer, int (*callback)(int)); + virtual void set_timer(TimerProc callback, int timer); // Mutex handling virtual MutexRef create_mutex(); @@ -93,9 +93,6 @@ class OSystem_MorphOS : public OSystem virtual void unlock_mutex(MutexRef mutex); virtual void delete_mutex(MutexRef mutex); - // Create a thread - virtual void create_thread(ThreadProc *proc, void *param); - // Get the next event. // Returns true if an event was retrieved. virtual bool poll_event(Event *event); @@ -104,7 +101,7 @@ class OSystem_MorphOS : public OSystem virtual void warp_mouse(int x, int y); // Set the function to be invoked whenever samples need to be generated - virtual bool set_sound_proc(SoundProc *proc, void *param, SoundFormat format); + virtual bool set_sound_proc(SoundProc proc, void *param, SoundFormat format); void fill_sound (byte * stream, int len); void clear_sound_proc(); @@ -180,9 +177,8 @@ class OSystem_MorphOS : public OSystem ColorMap *OvlCMap; /* Sound-related attributes */ - Process *ScummMusicThread; Process *ScummSoundThread; - SoundProc *SoundProc; + SoundProc SoundProc; void *SoundParam; MsgPort *ThreadPort; Message MusicStartup; |
