mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-06 10:58:01 +00:00
added some doxygen comments to common/system.h; cleaned up the OSystem interface a bit
svn-id: r8116
This commit is contained in:
parent
417ec3a588
commit
f0a9f4fb2c
@ -515,12 +515,10 @@ void OSystem_PALMOS::delay_msecs(uint msecs) {
|
|||||||
SysTaskDelay((SysTicksPerSecond()*msecs)/1000);
|
SysTaskDelay((SysTicksPerSecond()*msecs)/1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_PALMOS::create_thread(ThreadProc *proc, void *param) {
|
void OSystem_PALMOS::create_thread(ThreadProc *proc, void *param) {
|
||||||
_thread.active = true;
|
_thread.active = true;
|
||||||
_thread.proc = proc;
|
_thread.proc = proc;
|
||||||
_thread.param = param;
|
_thread.param = param;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OSystem_PALMOS::set_timer(int timer, int (*callback)(int))
|
void OSystem_PALMOS::set_timer(int timer, int (*callback)(int))
|
||||||
@ -536,7 +534,7 @@ void OSystem_PALMOS::set_timer(int timer, int (*callback)(int))
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Mutex handling */
|
/* Mutex handling */
|
||||||
void *OSystem_PALMOS::create_mutex(void)
|
void *OSystem_PALMOS::create_mutex()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,7 @@ public:
|
|||||||
void delay_msecs(uint msecs);
|
void delay_msecs(uint msecs);
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
void *create_thread(ThreadProc *proc, void *param);
|
void create_thread(ThreadProc *proc, void *param);
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
@ -105,7 +105,7 @@ public:
|
|||||||
void set_timer(int timer, int (*callback)(int));
|
void set_timer(int timer, int (*callback)(int));
|
||||||
|
|
||||||
// Mutex handling
|
// Mutex handling
|
||||||
void *create_mutex(void);
|
void *create_mutex();
|
||||||
void lock_mutex(void *mutex);
|
void lock_mutex(void *mutex);
|
||||||
void unlock_mutex(void *mutex);
|
void unlock_mutex(void *mutex);
|
||||||
void delete_mutex(void *mutex);
|
void delete_mutex(void *mutex);
|
||||||
@ -140,7 +140,7 @@ protected:
|
|||||||
bool _overlay_visible;
|
bool _overlay_visible;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
typedef void (OSystem_PALMOS::*RendererProc)(void);
|
typedef void (OSystem_PALMOS::*RendererProc)();
|
||||||
RendererProc _renderer_proc;
|
RendererProc _renderer_proc;
|
||||||
|
|
||||||
UInt8 *_sndDataP, *_sndTempP;
|
UInt8 *_sndDataP, *_sndTempP;
|
||||||
|
@ -41,7 +41,7 @@ class OSystem_Dreamcast : public OSystem {
|
|||||||
void delay_msecs(uint msecs);
|
void delay_msecs(uint msecs);
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
void *create_thread(ThreadProc *proc, void *param);
|
void create_thread(ThreadProc *proc, void *param);
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
@ -80,7 +80,7 @@ class OSystem_Dreamcast : public OSystem {
|
|||||||
virtual void set_timer(int timer, int (*callback)(int));
|
virtual void set_timer(int timer, int (*callback)(int));
|
||||||
|
|
||||||
// Mutex handling
|
// Mutex handling
|
||||||
virtual void *create_mutex(void);
|
virtual void *create_mutex();
|
||||||
virtual void lock_mutex(void *mutex);
|
virtual void lock_mutex(void *mutex);
|
||||||
virtual void unlock_mutex(void *mutex);
|
virtual void unlock_mutex(void *mutex);
|
||||||
virtual void delete_mutex(void *mutex);
|
virtual void delete_mutex(void *mutex);
|
||||||
|
@ -118,13 +118,13 @@ void OSystem_Dreamcast::quit() {
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_Dreamcast::create_thread(ThreadProc *proc, void *param) {
|
void OSystem_Dreamcast::create_thread(ThreadProc *proc, void *param) {
|
||||||
warning("Creating a thread! (not supported.)\n");
|
warning("Creating a thread! (not supported.)\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Mutex handling */
|
/* Mutex handling */
|
||||||
void *OSystem_Dreamcast::create_mutex(void)
|
void *OSystem_Dreamcast::create_mutex()
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -142,7 +142,7 @@ void OSystem_Dreamcast::delete_mutex(void *mutex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void dc_init_hardware(void)
|
void dc_init_hardware()
|
||||||
{
|
{
|
||||||
#ifndef NOSERIAL
|
#ifndef NOSERIAL
|
||||||
serial_init(57600);
|
serial_init(57600);
|
||||||
|
@ -685,7 +685,7 @@ void OSystem_GP32::undraw_mouse() { //return; //fixme!
|
|||||||
///SDL_UnlockSurface(sdl_tmpscreen);
|
///SDL_UnlockSurface(sdl_tmpscreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
char * SDL_GetError(void) {
|
char * SDL_GetError() {
|
||||||
|
|
||||||
// implement
|
// implement
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -860,7 +860,7 @@ void OSystem_GP32::delay_msecs(uint msecs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
void* OSystem_GP32::create_thread(ThreadProc *proc, void *param) { return NULL;}
|
void OSystem_GP32::create_thread(ThreadProc *proc, void *param) { }
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
@ -1075,7 +1075,7 @@ void OSystem_GP32::update_cdrom() { }
|
|||||||
void OSystem_GP32::set_timer(int timer, int (*callback)(int)) { }
|
void OSystem_GP32::set_timer(int timer, int (*callback)(int)) { }
|
||||||
|
|
||||||
// Mutex handling
|
// Mutex handling
|
||||||
void* OSystem_GP32::create_mutex(void) { }
|
void* OSystem_GP32::create_mutex() { }
|
||||||
void OSystem_GP32::lock_mutex(void *mutex) { }
|
void OSystem_GP32::lock_mutex(void *mutex) { }
|
||||||
void OSystem_GP32::unlock_mutex(void *mutex) { }
|
void OSystem_GP32::unlock_mutex(void *mutex) { }
|
||||||
void OSystem_GP32::delete_mutex(void *mutex) { }
|
void OSystem_GP32::delete_mutex(void *mutex) { }
|
||||||
|
@ -71,7 +71,7 @@ public:
|
|||||||
void delay_msecs(uint msecs);
|
void delay_msecs(uint msecs);
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
void *create_thread(ThreadProc *proc, void *param);
|
void create_thread(ThreadProc *proc, void *param);
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
@ -102,7 +102,7 @@ public:
|
|||||||
void set_timer(int timer, int (*callback)(int));
|
void set_timer(int timer, int (*callback)(int));
|
||||||
|
|
||||||
// Mutex handling
|
// Mutex handling
|
||||||
void *create_mutex(void);
|
void *create_mutex();
|
||||||
void lock_mutex(void *mutex);
|
void lock_mutex(void *mutex);
|
||||||
void unlock_mutex(void *mutex);
|
void unlock_mutex(void *mutex);
|
||||||
void delete_mutex(void *mutex);
|
void delete_mutex(void *mutex);
|
||||||
|
@ -308,16 +308,15 @@ void OSystem_MorphOS::set_timer(int timer, int (*callback)(int))
|
|||||||
warning("set_timer() unexpectedly called");
|
warning("set_timer() unexpectedly called");
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_MorphOS::create_thread(ThreadProc *proc, void *param)
|
void OSystem_MorphOS::create_thread(ThreadProc *proc, void *param)
|
||||||
{
|
{
|
||||||
ScummMusicThread = CreateNewProcTags(NP_Entry, (ULONG) proc, NP_CodeType, CODETYPE_PPC,
|
ScummMusicThread = CreateNewProcTags(NP_Entry, (ULONG) proc, NP_CodeType, CODETYPE_PPC,
|
||||||
NP_Name, (ULONG) "ScummVM Music Thread",
|
NP_Name, (ULONG) "ScummVM Music Thread",
|
||||||
NP_Priority, 60, NP_StackSize, 32000,
|
NP_Priority, 60, NP_StackSize, 32000,
|
||||||
NP_PPC_Arg1, (ULONG) param, TAG_DONE);
|
NP_PPC_Arg1, (ULONG) param, TAG_DONE);
|
||||||
return ScummMusicThread;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_MorphOS::create_mutex(void)
|
void *OSystem_MorphOS::create_mutex()
|
||||||
{
|
{
|
||||||
SignalSemaphore *sem = (SignalSemaphore *) AllocVec(sizeof (SignalSemaphore), MEMF_PUBLIC);
|
SignalSemaphore *sem = (SignalSemaphore *) AllocVec(sizeof (SignalSemaphore), MEMF_PUBLIC);
|
||||||
|
|
||||||
|
@ -83,13 +83,13 @@ class OSystem_MorphOS : public OSystem
|
|||||||
virtual void set_timer(int timer, int (*callback)(int));
|
virtual void set_timer(int timer, int (*callback)(int));
|
||||||
|
|
||||||
// Mutex handling
|
// Mutex handling
|
||||||
virtual void *create_mutex(void);
|
virtual void *create_mutex();
|
||||||
virtual void lock_mutex(void *mutex);
|
virtual void lock_mutex(void *mutex);
|
||||||
virtual void unlock_mutex(void *mutex);
|
virtual void unlock_mutex(void *mutex);
|
||||||
virtual void delete_mutex(void *mutex);
|
virtual void delete_mutex(void *mutex);
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
virtual void *create_thread(ThreadProc *proc, void *param);
|
virtual void create_thread(ThreadProc *proc, void *param);
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
void set_shake_pos(int shake_pos) {}
|
void set_shake_pos(int shake_pos) {}
|
||||||
uint32 get_msecs();
|
uint32 get_msecs();
|
||||||
void delay_msecs(uint msecs);
|
void delay_msecs(uint msecs);
|
||||||
void *create_thread(ThreadProc *proc, void *param) { return NULL; }
|
void create_thread(ThreadProc *proc, void *param) { }
|
||||||
bool poll_event(Event *event) { return false; }
|
bool poll_event(Event *event) { return false; }
|
||||||
bool set_sound_proc(void *param, SoundProc *proc, byte sound) {}
|
bool set_sound_proc(void *param, SoundProc *proc, byte sound) {}
|
||||||
void quit() { exit(1); }
|
void quit() { exit(1); }
|
||||||
|
@ -496,8 +496,8 @@ void OSystem_SDL_Common::delay_msecs(uint msecs) {
|
|||||||
SDL_Delay(msecs);
|
SDL_Delay(msecs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_SDL_Common::create_thread(ThreadProc *proc, void *param) {
|
void OSystem_SDL_Common::create_thread(ThreadProc *proc, void *param) {
|
||||||
return SDL_CreateThread(proc, param);
|
SDL_CreateThread(proc, param);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mapKey(SDLKey key, SDLMod mod, Uint16 unicode)
|
static int mapKey(SDLKey key, SDLMod mod, Uint16 unicode)
|
||||||
|
@ -71,7 +71,7 @@ public:
|
|||||||
void delay_msecs(uint msecs);
|
void delay_msecs(uint msecs);
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
void *create_thread(ThreadProc *proc, void *param);
|
void create_thread(ThreadProc *proc, void *param);
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
@ -103,7 +103,7 @@ public:
|
|||||||
void set_timer(int timer, int (*callback)(int));
|
void set_timer(int timer, int (*callback)(int));
|
||||||
|
|
||||||
// Mutex handling
|
// Mutex handling
|
||||||
void *create_mutex(void);
|
void *create_mutex();
|
||||||
void lock_mutex(void *mutex);
|
void lock_mutex(void *mutex);
|
||||||
void unlock_mutex(void *mutex);
|
void unlock_mutex(void *mutex);
|
||||||
void delete_mutex(void *mutex);
|
void delete_mutex(void *mutex);
|
||||||
|
@ -71,7 +71,7 @@ typedef BOOL (*tSHCreateMenuBar)(void*);
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
// Dynamically linked SDLAudio
|
// Dynamically linked SDLAudio
|
||||||
typedef void (*tSDL_AudioQuit)(void);
|
typedef void (*tSDL_AudioQuit)();
|
||||||
typedef int (*tSDL_Init)(Uint32);
|
typedef int (*tSDL_Init)(Uint32);
|
||||||
typedef void (*tSDL_PauseAudio)(int);
|
typedef void (*tSDL_PauseAudio)(int);
|
||||||
typedef int (*tSDL_OpenAudio)(SDL_AudioSpec*, SDL_AudioSpec*);
|
typedef int (*tSDL_OpenAudio)(SDL_AudioSpec*, SDL_AudioSpec*);
|
||||||
@ -439,7 +439,7 @@ SoundProc *real_soundproc;
|
|||||||
|
|
||||||
extern void startFindGame();
|
extern void startFindGame();
|
||||||
extern void displayGameInfo();
|
extern void displayGameInfo();
|
||||||
extern bool loadGameSettings(void);
|
extern bool loadGameSettings();
|
||||||
extern void setFindGameDlgHandle(HWND);
|
extern void setFindGameDlgHandle(HWND);
|
||||||
extern void getSelectedGame(int, char*, TCHAR*, char*);
|
extern void getSelectedGame(int, char*, TCHAR*, char*);
|
||||||
extern void runGame(char*);
|
extern void runGame(char*);
|
||||||
@ -448,7 +448,7 @@ extern void palette_update();
|
|||||||
|
|
||||||
extern void own_soundProc(void *buffer, byte *samples, int len);
|
extern void own_soundProc(void *buffer, byte *samples, int len);
|
||||||
|
|
||||||
extern int chooseGame(void);
|
extern int chooseGame();
|
||||||
|
|
||||||
//#define SHMenuBar_GetMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_GETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)
|
//#define SHMenuBar_GetMenu(hWndMB,ID_MENU) (HMENU)SendMessage((hWndMB), SHCMBM_GETSUBMENU, (WPARAM)0, (LPARAM)ID_MENU)
|
||||||
|
|
||||||
@ -1623,12 +1623,11 @@ void OSystem_WINCE3::delay_msecs(uint msecs) {
|
|||||||
Sleep(msecs);
|
Sleep(msecs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_WINCE3::create_thread(ThreadProc *proc, void *param) {
|
void OSystem_WINCE3::create_thread(ThreadProc *proc, void *param) {
|
||||||
// needed for emulated MIDI support (Sam'n'Max)
|
// needed for emulated MIDI support (Sam'n'Max)
|
||||||
HANDLE handle;
|
HANDLE handle;
|
||||||
handle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)proc, param, 0, NULL);
|
handle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)proc, param, 0, NULL);
|
||||||
SetThreadPriority(handle, THREAD_PRIORITY_NORMAL);
|
SetThreadPriority(handle, THREAD_PRIORITY_NORMAL);
|
||||||
return handle;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int mapKey(int key, byte mod)
|
int mapKey(int key, byte mod)
|
||||||
|
@ -109,7 +109,7 @@ public:
|
|||||||
void delay_msecs(uint msecs);
|
void delay_msecs(uint msecs);
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
void *create_thread(ThreadProc *proc, void *param);
|
void create_thread(ThreadProc *proc, void *param);
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
|
@ -89,7 +89,7 @@ public:
|
|||||||
void delay_msecs(uint msecs);
|
void delay_msecs(uint msecs);
|
||||||
|
|
||||||
// Create a thread
|
// Create a thread
|
||||||
void *create_thread(ThreadProc *proc, void *param);
|
void create_thread(ThreadProc *proc, void *param);
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
@ -121,7 +121,7 @@ public:
|
|||||||
void set_timer(int timer, int (*callback) (int));
|
void set_timer(int timer, int (*callback) (int));
|
||||||
|
|
||||||
// Mutex handling
|
// Mutex handling
|
||||||
void *create_mutex(void);
|
void *create_mutex();
|
||||||
void lock_mutex(void *mutex);
|
void lock_mutex(void *mutex);
|
||||||
void unlock_mutex(void *mutex);
|
void unlock_mutex(void *mutex);
|
||||||
void delete_mutex(void *mutex);
|
void delete_mutex(void *mutex);
|
||||||
@ -302,7 +302,7 @@ void OSystem_X11::create_empty_cursor()
|
|||||||
XDefineCursor(display, window, cursor);
|
XDefineCursor(display, window, cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
OSystem *OSystem_X11_create(void)
|
OSystem *OSystem_X11_create()
|
||||||
{
|
{
|
||||||
return OSystem_X11::create(0, 0);
|
return OSystem_X11::create(0, 0);
|
||||||
}
|
}
|
||||||
@ -765,7 +765,7 @@ void OSystem_X11::set_shake_pos(int shake_pos)
|
|||||||
new_shake_pos = shake_pos;
|
new_shake_pos = shake_pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_X11::create_thread(ThreadProc *proc, void *param)
|
void OSystem_X11::create_thread(ThreadProc *proc, void *param)
|
||||||
{
|
{
|
||||||
pthread_t *thread = (pthread_t *) malloc(sizeof(pthread_t));
|
pthread_t *thread = (pthread_t *) malloc(sizeof(pthread_t));
|
||||||
if (pthread_create(thread, NULL, (void *(*)(void *))proc, param))
|
if (pthread_create(thread, NULL, (void *(*)(void *))proc, param))
|
||||||
@ -1029,7 +1029,7 @@ void OSystem_X11::set_timer(int timer, int (*callback) (int))
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void *OSystem_X11::create_mutex(void)
|
void *OSystem_X11::create_mutex()
|
||||||
{
|
{
|
||||||
pthread_mutex_t *mutex = (pthread_mutex_t *) malloc(sizeof(pthread_mutex_t));
|
pthread_mutex_t *mutex = (pthread_mutex_t *) malloc(sizeof(pthread_mutex_t));
|
||||||
pthread_mutex_init(mutex, NULL);
|
pthread_mutex_init(mutex, NULL);
|
||||||
|
185
common/system.h
185
common/system.h
@ -26,26 +26,20 @@
|
|||||||
#include "scummsys.h"
|
#include "scummsys.h"
|
||||||
#include "savefile.h"
|
#include "savefile.h"
|
||||||
|
|
||||||
// Interface to the ScummVM backend
|
/**
|
||||||
|
* Interface for ScummVM backends.
|
||||||
|
*/
|
||||||
class OSystem {
|
class OSystem {
|
||||||
public:
|
public:
|
||||||
|
typedef void *MutexRef;
|
||||||
typedef int ThreadProc(void *param);
|
typedef int ThreadProc(void *param);
|
||||||
typedef void SoundProc(void *param, byte *buf, int len);
|
typedef void SoundProc(void *param, byte *buf, int len);
|
||||||
|
|
||||||
struct Event {
|
/**
|
||||||
int event_code;
|
* The types of events backends can generate.
|
||||||
struct {
|
* @see Event
|
||||||
uint16 ascii;
|
*/
|
||||||
byte flags;
|
enum EventCode {
|
||||||
int keycode;
|
|
||||||
} kbd;
|
|
||||||
struct {
|
|
||||||
int x,y;
|
|
||||||
} mouse;
|
|
||||||
};
|
|
||||||
|
|
||||||
enum {
|
|
||||||
EVENT_KEYDOWN = 1,
|
EVENT_KEYDOWN = 1,
|
||||||
EVENT_KEYUP = 2,
|
EVENT_KEYUP = 2,
|
||||||
EVENT_MOUSEMOVE = 3,
|
EVENT_MOUSEMOVE = 3,
|
||||||
@ -63,6 +57,23 @@ public:
|
|||||||
KBD_SHIFT = 4
|
KBD_SHIFT = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data structure for an event. A pointer to an instance of Event
|
||||||
|
* can be passed to poll_event.
|
||||||
|
*/
|
||||||
|
struct Event {
|
||||||
|
EventCode event_code;
|
||||||
|
struct {
|
||||||
|
int keycode;
|
||||||
|
uint16 ascii;
|
||||||
|
byte flags;
|
||||||
|
} kbd;
|
||||||
|
struct {
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
} mouse;
|
||||||
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PROP_TOGGLE_FULLSCREEN = 1,
|
PROP_TOGGLE_FULLSCREEN = 1,
|
||||||
PROP_SET_WINDOW_CAPTION = 2,
|
PROP_SET_WINDOW_CAPTION = 2,
|
||||||
@ -86,49 +97,77 @@ public:
|
|||||||
SOUND_16BIT = 1
|
SOUND_16BIT = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
// Set colors of the palette
|
/** Set colors of the palette. */
|
||||||
virtual void set_palette(const byte *colors, uint start, uint num) = 0;
|
virtual void set_palette(const byte *colors, uint start, uint num) = 0;
|
||||||
|
|
||||||
// Set the size of the video bitmap.
|
/** Set the size of the video bitmap. Typically 320x200 pixels. */
|
||||||
// Typically, 320x200
|
|
||||||
virtual void init_size(uint w, uint h) = 0;
|
virtual void init_size(uint w, uint h) = 0;
|
||||||
|
|
||||||
// Draw a bitmap to screen.
|
/**
|
||||||
// The screen will not be updated to reflect the new bitmap
|
* Draw a bitmap to screen.
|
||||||
|
* The screen will not be updated to reflect the new bitmap, you have
|
||||||
|
* to call update_screen to do that.
|
||||||
|
* @see update_screen
|
||||||
|
*/
|
||||||
virtual void copy_rect(const byte *buf, int pitch, int x, int y, int w, int h) = 0;
|
virtual void copy_rect(const byte *buf, int pitch, int x, int y, int w, int h) = 0;
|
||||||
|
|
||||||
// Moves the screen content around by the given amount of pixels
|
/**
|
||||||
// but only the top height pixel rows, the rest stays untouched
|
* Moves the screen content by the offset specified via dx/dy.
|
||||||
|
* Only the region from x=0 till x=height-1 is affected.
|
||||||
|
* @param dx the horizontal offset.
|
||||||
|
* @param dy the vertical offset.
|
||||||
|
* @param height the number of lines which in which the move will be done.
|
||||||
|
*/
|
||||||
virtual void move_screen(int dx, int dy, int height) = 0;
|
virtual void move_screen(int dx, int dy, int height) = 0;
|
||||||
|
|
||||||
// Update the dirty areas of the screen
|
/** Update the dirty areas of the screen. */
|
||||||
virtual void update_screen() = 0;
|
virtual void update_screen() = 0;
|
||||||
|
|
||||||
// Either show or hide the mouse cursor
|
/** Show or hide the mouse cursor. */
|
||||||
virtual bool show_mouse(bool visible) = 0;
|
virtual bool show_mouse(bool visible) = 0;
|
||||||
|
|
||||||
// Set the position of the mouse cursor
|
/**
|
||||||
|
* Set the position of the mouse cursor.
|
||||||
|
* @see warp_mouse
|
||||||
|
*/
|
||||||
virtual void set_mouse_pos(int x, int y) = 0;
|
virtual void set_mouse_pos(int x, int y) = 0;
|
||||||
|
|
||||||
// Warp the mouse cursor. Where set_mouse_pos() only informs the
|
/**
|
||||||
// backend of the mouse cursor's current position, this function
|
* Warp the mouse cursor to the specified position. Where set_mouse_pos()
|
||||||
// actually moves the cursor to the specified position.
|
* only informs the backend of the mouse cursor's current position, this
|
||||||
|
* function actually moves the cursor to the specified position.
|
||||||
|
* @see set_mouse_pos
|
||||||
|
*/
|
||||||
virtual void warp_mouse(int x, int y) = 0;
|
virtual void warp_mouse(int x, int y) = 0;
|
||||||
|
|
||||||
// Set the bitmap that's used when drawing the cursor.
|
/** Set the bitmap used for drawing the cursor. */
|
||||||
virtual void set_mouse_cursor(const byte *buf, uint w, uint h, int hotspot_x, int hotspot_y) = 0;
|
virtual void set_mouse_cursor(const byte *buf, uint w, uint h, int hotspot_x, int hotspot_y) = 0;
|
||||||
|
|
||||||
// Shaking is used in SCUMM. Set current shake position.
|
/**
|
||||||
virtual void set_shake_pos(int shake_pos) = 0;
|
* Set current shake position, a feature needed for some SCUMM screen effects.
|
||||||
|
* The effect causes the displayed graphics to be shifted upwards by the specified
|
||||||
|
* (always positive) offset. The area at the bottom of the screen which is moved
|
||||||
|
* into view by this is filled by black. This does not cause any graphic data to
|
||||||
|
* be lost - that is, to restore the original view, the game engine only has to
|
||||||
|
* call this method again with a 0 offset. No calls to copy_rect are necessary.
|
||||||
|
* @param shakeOffset the shake offset
|
||||||
|
*/
|
||||||
|
virtual void set_shake_pos(int shakeOffset) = 0;
|
||||||
|
|
||||||
// Get the number of milliseconds since the program was started.
|
/** Get the number of milliseconds since the program was started. */
|
||||||
virtual uint32 get_msecs() = 0;
|
virtual uint32 get_msecs() = 0;
|
||||||
|
|
||||||
// Delay for a specified amount of milliseconds
|
/** Delay/sleep for the specified amount of milliseconds. */
|
||||||
virtual void delay_msecs(uint msecs) = 0;
|
virtual void delay_msecs(uint msecs) = 0;
|
||||||
|
|
||||||
// Create a thread
|
/**
|
||||||
virtual void *create_thread(ThreadProc *proc, void *param) = 0;
|
* Create a thread with the given entry procedure.
|
||||||
|
* @param proc the thread main procedure
|
||||||
|
* @param param an arbitrary parameter which is stored and passed to
|
||||||
|
* proc when it is invoked in its own thread.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
virtual void create_thread(ThreadProc *proc, void *param) = 0;
|
||||||
|
|
||||||
// Get the next event.
|
// Get the next event.
|
||||||
// Returns true if an event was retrieved.
|
// Returns true if an event was retrieved.
|
||||||
@ -142,37 +181,87 @@ public:
|
|||||||
// Get or set a property
|
// Get or set a property
|
||||||
virtual uint32 property(int param, Property *value) = 0;
|
virtual uint32 property(int param, Property *value) = 0;
|
||||||
|
|
||||||
// Poll cdrom status
|
|
||||||
// Returns true if cd audio is playing
|
/**
|
||||||
|
* @name Audio CD
|
||||||
|
* The methods in this group deal with Audio CD playback.
|
||||||
|
*/
|
||||||
|
//@{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Poll CD status
|
||||||
|
* @return true if CD audio is playing
|
||||||
|
*/
|
||||||
virtual bool poll_cdrom() = 0;
|
virtual bool poll_cdrom() = 0;
|
||||||
|
|
||||||
// Play cdrom audio track
|
/**
|
||||||
|
* Start audio CD playback.
|
||||||
|
* @param track the track to play.
|
||||||
|
* @param num_loops how often playback should be repeated (-1 = infinitely often).
|
||||||
|
* @param start_frame the frame at which playback should start.
|
||||||
|
* @param end_frame the frame at which playback should end.
|
||||||
|
*/
|
||||||
virtual void play_cdrom(int track, int num_loops, int start_frame, int end_frame) = 0;
|
virtual void play_cdrom(int track, int num_loops, int start_frame, int end_frame) = 0;
|
||||||
|
|
||||||
// Stop cdrom audio track
|
/**
|
||||||
|
// Stop audio CD playback
|
||||||
|
*/
|
||||||
virtual void stop_cdrom() = 0;
|
virtual void stop_cdrom() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
// Update cdrom audio status
|
// Update cdrom audio status
|
||||||
|
*/
|
||||||
virtual void update_cdrom() = 0;
|
virtual void update_cdrom() = 0;
|
||||||
|
//@}
|
||||||
|
|
||||||
|
|
||||||
// Add a new callback timer
|
// Add a new callback timer
|
||||||
virtual void set_timer(int timer, int (*callback)(int)) = 0;
|
virtual void set_timer(int timer, int (*callback)(int)) = 0;
|
||||||
|
|
||||||
// Mutex handling
|
/**
|
||||||
virtual void *create_mutex(void) = 0;
|
* @name Mutex handling
|
||||||
virtual void lock_mutex(void *mutex) = 0;
|
*/
|
||||||
virtual void unlock_mutex(void *mutex) = 0;
|
//@{
|
||||||
virtual void delete_mutex(void *mutex) = 0;
|
/**
|
||||||
|
* Create a new mutex.
|
||||||
|
* @return the newly created mutex, or 0 if an error occured.
|
||||||
|
*/
|
||||||
|
virtual MutexRef create_mutex(void) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Lock the given mutex.
|
||||||
|
* @param mutex the mutex to lock.
|
||||||
|
*/
|
||||||
|
virtual void lock_mutex(MutexRef mutex) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unlock the given mutex.
|
||||||
|
* @param mutex the mutex to unlock.
|
||||||
|
*/
|
||||||
|
virtual void unlock_mutex(MutexRef mutex) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete the given mutex. Make sure the mutex is unlocked before you delete it.
|
||||||
|
* If you delete a locked mutex, the behavior is undefined, in particular, your
|
||||||
|
* program may crash.
|
||||||
|
* @param mutex the mutex to delete.
|
||||||
|
*/
|
||||||
|
virtual void delete_mutex(MutexRef mutex) = 0;
|
||||||
|
//@}
|
||||||
|
|
||||||
// Quit
|
// Quit
|
||||||
virtual void quit() = 0;
|
virtual void quit() = 0;
|
||||||
|
|
||||||
// Overlay
|
/**
|
||||||
|
* @name Overlay
|
||||||
|
*/
|
||||||
|
//@{
|
||||||
virtual void show_overlay() = 0;
|
virtual void show_overlay() = 0;
|
||||||
virtual void hide_overlay() = 0;
|
virtual void hide_overlay() = 0;
|
||||||
virtual void clear_overlay() = 0;
|
virtual void clear_overlay() = 0;
|
||||||
virtual void grab_overlay(NewGuiColor *buf, int pitch) = 0;
|
virtual void grab_overlay(NewGuiColor *buf, int pitch) = 0;
|
||||||
virtual void copy_rect_overlay(const NewGuiColor *buf, int pitch, int x, int y, int w, int h) = 0;
|
virtual void copy_rect_overlay(const NewGuiColor *buf, int pitch, int x, int y, int w, int h) = 0;
|
||||||
|
//@}
|
||||||
|
|
||||||
// Low-level graphics access
|
// Low-level graphics access
|
||||||
virtual int16 get_height() {return 200;}
|
virtual int16 get_height() {return 200;}
|
||||||
@ -195,11 +284,9 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Factory functions. This means we don't have to include the
|
/* Factory functions. This means we don't have to include the headers for
|
||||||
* OSystem_SDL header file. (which in turn would require the SDL headers)
|
* all backends.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* OSystem_SDL */
|
|
||||||
extern OSystem *OSystem_SDL_create(int gfx_driver, bool full_screen);
|
extern OSystem *OSystem_SDL_create(int gfx_driver, bool full_screen);
|
||||||
extern OSystem *OSystem_NULL_create();
|
extern OSystem *OSystem_NULL_create();
|
||||||
extern OSystem *OSystem_MorphOS_create(int game_id, int gfx_driver, bool full_screen);
|
extern OSystem *OSystem_MorphOS_create(int game_id, int gfx_driver, bool full_screen);
|
||||||
|
@ -2155,6 +2155,9 @@ void Scumm::parseEvents() {
|
|||||||
case OSystem::EVENT_RBUTTONUP:
|
case OSystem::EVENT_RBUTTONUP:
|
||||||
_rightBtnPressed &= ~msDown;
|
_rightBtnPressed &= ~msDown;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4498,6 +4498,9 @@ void SimonState::delay(uint amount) {
|
|||||||
else
|
else
|
||||||
_exit_cutscene = true;
|
_exit_cutscene = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -298,6 +298,9 @@ void SkyState::delay(uint amount) { //copied and mutilated from Simon.cpp
|
|||||||
case OSystem::EVENT_RBUTTONDOWN:
|
case OSystem::EVENT_RBUTTONDOWN:
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user