1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
/* ScummVM - Scumm Interpreter
* Copyright (C) 2001 Ludvig Strigeus
* Copyright (C) 2001-2006 The ScummVM project
* Copyright (C) 2002-2006 Chris Apers - PalmOS Backend
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* $URL$
* $Id$
*
*/
#include "be_base.h"
#include "common/config-file.h"
#include "common/config-manager.h"
OSystem_PalmBase::OSystem_PalmBase() {
_overlayVisible = false;
_current_shake_pos = 0;
_new_shake_pos = 0;
_paletteDirtyStart = 0;
_paletteDirtyEnd = 0;
_gfxLoaded = false;
_modeChanged = false;
_setMode = GFX_NORMAL;
_mode = _setMode;
_redawOSD = false;
_setPalette = true;
_offScreenH = NULL;
_screenH = NULL;
_offScreenP = NULL;
_screenP = NULL;
_screenPitch = gVars->screenPitch;
_lastEvent = nilEvent;
_lastKey = kKeyNone;
_lastKeyModifier = kModifierNone;
_lastKeyRepeat = 100;
_useNumPad = false;
_showBatLow = false;
_batCheckTicks = SysTicksPerSecond() * 15;
_batCheckLast = TimGetTicks();
_mouseDataH = NULL;
_mouseDataP = NULL;
_mouseVisible = false;
_mouseDrawn = false;
MemSet(&_keyMouse, sizeof(_keyMouse), 0);
MemSet(&_mouseCurState, sizeof(_mouseCurState), 0);
MemSet(&_mouseOldState, sizeof(_mouseOldState), 0);
MemSet(&_timer, sizeof(TimerType), 0);
MemSet(&_sound, sizeof(SoundType), 0);
}
void OSystem_PalmBase::initBackend() {
if (gVars->autoSave != -1)
ConfMan.set("autosave_period", gVars->autoSave);
_keyMouse.bitUp = keyBitPageUp;
_keyMouse.bitDown = keyBitPageDown;
_keyMouse.bitLeft = keyBitHard1;
_keyMouse.bitRight = keyBitHard2;
_keyMouse.bitButLeft= keyBitHard3;
_keyMouse.hasMore = false;
int_initBackend();
_keyMouseMask = (_keyMouse.bitUp | _keyMouse.bitDown | _keyMouse.bitLeft | _keyMouse.bitRight | _keyMouse.bitButLeft);
}
uint32 OSystem_PalmBase::getMillis() {
return TimGetTicks() * 1000 / SysTicksPerSecond();
}
void OSystem_PalmBase::delayMillis(uint msecs) {
Int32 delay = (SysTicksPerSecond() * msecs) / 1000;
if (delay > 0)
SysTaskDelay(delay);
}
void OSystem_PalmBase::setTimerCallback(TimerProc callback, int timer) {
if (callback != NULL) {
_timer.duration = timer;
_timer.nextExpiry = getMillis() + timer;
_timer.callback = callback;
_timer.active = true;
} else {
_timer.active = false;
}
}
void OSystem_PalmBase::quit() {
int_quit();
clearSoundCallback();
unload_gfx_mode();
exit(0);
}
|