aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/PalmOS/Src/init_stuffs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/PalmOS/Src/init_stuffs.cpp')
-rw-r--r--backends/platform/PalmOS/Src/init_stuffs.cpp130
1 files changed, 130 insertions, 0 deletions
diff --git a/backends/platform/PalmOS/Src/init_stuffs.cpp b/backends/platform/PalmOS/Src/init_stuffs.cpp
new file mode 100644
index 0000000000..3b2ab9c869
--- /dev/null
+++ b/backends/platform/PalmOS/Src/init_stuffs.cpp
@@ -0,0 +1,130 @@
+#include <PalmOS.h>
+#include <SonyClie.h>
+#include <PalmNavigator.h>
+#include <HsExtCommon.h>
+#include <HsNavCommon.h>
+#include <PalmGoLCD.h>
+
+#include "globals.h" // for OPTIONS_DEF()
+#include "init_stuffs.h"
+#include "stuffs.h"
+
+#ifndef DISABLE_TAPWAVE
+#define __TWKEYS_H__ // bad hack
+#include "tapwave.h"
+#endif
+
+#ifndef DISABLE_PA1LIB
+#include "Pa1Lib.h"
+#endif
+
+#ifndef DISABLE_LIGHTSPEED
+#include "lightspeed_public.h"
+#endif
+
+// TODO : check the depth to set correct value
+// works only for 8bit for now
+UInt32 StuffsGetPitch(Coord fullw) {
+ UInt32 pitch = 0;
+
+ if (OPTIONS_TST(kOptModeHiDensity)) {
+ WinScreenGetAttribute(winScreenRowBytes, &pitch);
+
+ // FIXME : hack for TT3 simulator (and real ?) return 28 on landscape mode
+ if (pitch < fullw)
+ pitch = fullw;
+
+ } else {
+ pitch = fullw;
+ }
+
+ return pitch;
+}
+
+void *StuffsForceVG() {
+ // create an empty form to force the VG to be shown
+ FormType *frmP = FrmNewForm(4567, NULL, 0,0,0,0, false, 0, 0, 0);
+ FrmDrawForm(frmP);
+ return frmP;
+}
+
+void StuffsReleaseVG(void *vg) {
+ FrmDeleteForm((FormPtr)vg);
+}
+
+void StuffsGetFeatures() {
+ UInt32 ulProcessorType, manufacturer, version, depth;
+ Boolean color;
+
+#ifndef DISABLE_TAPWAVE
+ // Tapwave Zodiac libs ?
+ if (!FtrGet(sysFileCSystem, sysFtrNumOEMCompanyID, &manufacturer))
+ if (manufacturer == twCreatorID) {
+ OPTIONS_SET(kOptDeviceZodiac);
+ OPTIONS_SET(kOpt5WayNavigatorV2);
+ }
+#endif
+
+ // Hi-Density present ?
+ if (!FtrGet(sysFtrCreator, sysFtrNumWinVersion, &version))
+ if (version >= 4)
+ OPTIONS_SET(kOptModeHiDensity);
+
+ // OS5 ?
+ if (!FtrGet(sysFtrCreator, sysFtrNumROMVersion, &version))
+ if (version >= kOS5Version)
+ OPTIONS_SET(kOptDeviceOS5);
+
+ // ARM ?
+ if (!FtrGet(sysFileCSystem, sysFtrNumProcessorID, &ulProcessorType))
+ if (sysFtrNumProcessorIsARM(ulProcessorType))
+ OPTIONS_SET(kOptDeviceARM);
+ else if (ulProcessorType == sysFtrNumProcessorx86)
+ OPTIONS_SET(kOptDeviceProcX86);
+
+ // 5Way Navigator
+ if (!FtrGet(hsFtrCreator, hsFtrIDNavigationSupported, &version)) {
+ if (version >= 2)
+ OPTIONS_SET(kOpt5WayNavigatorV2);
+
+ } else if (!FtrGet(sysFtrCreator, sysFtrNumFiveWayNavVersion, &version)) {
+ if (version >= 2)
+ OPTIONS_SET(kOpt5WayNavigatorV2);
+ else
+ OPTIONS_SET(kOpt5WayNavigatorV1);
+
+ } else if (!FtrGet(navFtrCreator, navFtrVersion, &version)) {
+ if (version >= 2)
+ OPTIONS_SET(kOpt5WayNavigatorV2);
+ else
+ OPTIONS_SET(kOpt5WayNavigatorV1);
+ }
+
+ // Palm Sound API ?
+ if (!FtrGet(sysFileCSoundMgr, sndFtrIDVersion, &version))
+ if (version >= 1)
+ OPTIONS_SET(kOptPalmSoundAPI);
+
+#ifndef DISABLE_PA1LIB
+ // Sony Pa1 Sound API
+ if (Pa1Lib_Open()) {
+ OPTIONS_SET(kOptSonyPa1LibAPI);
+ Pa1Lib_Close();
+ }
+#endif
+
+ // GoLCD
+ if (!FtrGet(goLcdLibCreator, goLcdLibFtrNum, &version))
+ OPTIONS_SET(kOptGoLcdAPI);
+
+#ifndef DISABLE_LIGHTSPEED
+ // Lightspeed
+ if (LS_Installed())
+ OPTIONS_SET(kOptLightspeedAPI);
+#endif
+
+ // check for 16bit mode
+ if (!WinScreenMode(winScreenModeGetSupportedDepths, NULL, NULL, &depth, &color))
+ OPTIONS_SET(((depth & 0x8000) ? kOptMode16Bit : kOptNone));
+
+} \ No newline at end of file