aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorChris Apers2004-11-09 10:50:30 +0000
committerChris Apers2004-11-09 10:50:30 +0000
commit923e53724c3116982d4a41b11a5157bee9900db5 (patch)
treeed6a86c325d567e28b48cef7c2ac988831c8e088 /backends
parent58557e6457acc1804ae66c06cfcaf8cbe8610537 (diff)
downloadscummvm-rg350-923e53724c3116982d4a41b11a5157bee9900db5.tar.gz
scummvm-rg350-923e53724c3116982d4a41b11a5157bee9900db5.tar.bz2
scummvm-rg350-923e53724c3116982d4a41b11a5157bee9900db5.zip
New module code
svn-id: r15745
Diffstat (limited to 'backends')
-rw-r--r--backends/PalmOS/Src/modules.cpp134
-rw-r--r--backends/PalmOS/Src/modules.h22
2 files changed, 156 insertions, 0 deletions
diff --git a/backends/PalmOS/Src/modules.cpp b/backends/PalmOS/Src/modules.cpp
new file mode 100644
index 0000000000..9b8600a7e9
--- /dev/null
+++ b/backends/PalmOS/Src/modules.cpp
@@ -0,0 +1,134 @@
+#include <PalmOS.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "palmdefs.h"
+#include "args.h"
+#include "globals.h"
+#include "modules.h"
+#include "extend.h"
+#include "features.h"
+
+#include "rumble.h"
+#include "init_mathlib.h"
+#include "init_pa1lib.h"
+#include "init_arm.h"
+#include "init_palmos.h"
+#include "init_sony.h"
+
+#ifndef DISABLE_LIGHTSPEED
+#include "lightspeed_public.h"
+#endif
+
+GlobalsDataPtr gVars;
+
+void run(int argc, char *argv[]) {
+
+ MathlibInit();
+ gVars->HRrefNum = SonyHRInit(8);
+ if (gVars->HRrefNum == sysInvalidRefNum)
+ PalmHRInit(8);
+ gVars->slkRefNum= SilkInit(&(gVars->slkVersion));
+
+ // create file for printf, warnings, etc...
+ StdioInit(gVars->volRefNum, "/PALM/Programs/ScummVM/scumm.log", DrawStatus);
+ gUnistdCWD = SCUMMVM_SAVEPATH;
+
+ // init hardware
+ if (HWR_INIT(INIT_PA1LIB)) Pa1libInit();
+ if (HWR_INIT(INIT_VIBRATOR)) gVars->vibrator = RumbleInit();
+ if (HWR_INIT(INIT_ARM)) ARMInit();
+ PalmInit(HWR_GET());
+
+ if (!gVars->vibrator)
+ HWR_RST(INIT_VIBRATOR);
+
+ GlbOpen();
+
+ DO_EXIT( main(argc, argv); )
+
+ // be sure to release features memory
+ FREE_FTR(ftrBufferOverlay)
+ FREE_FTR(ftrBufferBackup)
+ FREE_FTR(ftrBufferHotSwap)
+
+ GlbClose();
+
+ PalmRelease(HWR_GET());
+ if (HWR_INIT(INIT_ARM)) ARMRelease();
+ if (HWR_INIT(INIT_VIBRATOR)) RumbleRelease();
+ if (HWR_INIT(INIT_PA1LIB)) Pa1libRelease();
+
+ // close log file
+ StdioRelease();
+
+ PalmHRRelease();
+ SonyHRRelease(gVars->HRrefNum);
+ SilkRelease(gVars->slkRefNum);
+ MathlibRelease();
+
+ MemPtrFree(gVars);
+ WinPalette(winPaletteSetToDefault, 0, 256, NULL);
+// ArgsFree(argvP); // called in main(...)
+}
+
+static UInt32 ModulesPalmMain(UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags)
+{
+ switch (cmd)
+ {
+ case sysAppLaunchCmdNormalLaunch:
+ {
+ if (cmdPBP) {
+ Char **argvP;
+ UInt16 cardNo;
+ LocalID dbID;
+
+ LaunchParamType *lp = (LaunchParamType *)cmdPBP;
+
+ gVars = lp->gVars;
+ argvP = lp->args.argv;
+
+#ifndef DISABLE_LIGHTSPEED
+ switch (lp->lightspeed) {
+ case 0:
+ LS_SetCPUSpeedHigh();
+ break;
+ case 1:
+ LS_SetCPUSpeedNormal();
+ break;
+ case 2:
+ LS_SetCPUSpeedLow();
+ break;
+ }
+#endif
+ // MemPtrSetOwner(gVars, ownerID);
+ // ArgsSetOwner(argvP, ownerID); // will be freed by main(...)
+ // MemPtrFree(lp); // will be freed by the system on exit
+
+ run(lp->args.argc, argvP);
+
+ cardNo = 0;
+ dbID = DmFindDatabase(0, "ScummVM");
+ if (dbID) {
+ if (lp->exitLauncher)
+ SysUIAppSwitch(cardNo, dbID, sysAppLaunchCustomDeleteEngine,0);
+ else
+ SysUIAppSwitch(cardNo, dbID, sysAppLaunchCmdNormalLaunch,0);
+ }
+ }
+ break;
+ }
+
+ default:
+ break;
+
+ }
+
+ return 0;
+}
+
+UInt32 PilotMain( UInt16 cmd, MemPtr cmdPBP, UInt16 launchFlags)
+{
+ return ModulesPalmMain(cmd, cmdPBP, launchFlags);
+}
diff --git a/backends/PalmOS/Src/modules.h b/backends/PalmOS/Src/modules.h
new file mode 100644
index 0000000000..da89b7353b
--- /dev/null
+++ b/backends/PalmOS/Src/modules.h
@@ -0,0 +1,22 @@
+#ifndef MODULES_H
+#define MODULES_H
+
+#include "globals.h"
+
+#define sysAppLaunchCode_SVMRunEngine (sysAppLaunchCmdCustomBase + 0)
+
+void ModDelete();
+
+typedef struct {
+ UInt8 lightspeed;
+ Boolean exitLauncher;
+
+ struct {
+ UInt8 argc;
+ Char **argv;
+ } args;
+
+ GlobalsDataPtr gVars;
+} LaunchParamType;
+
+#endif