scummvm/backends/platform/PalmOS/Src/init_stuffs.cpp
Chris Apers 8de5d496fa Added more compilation options
svn-id: r23914
2006-09-17 10:14:11 +00:00

135 lines
3.0 KiB
C++

#include <PalmOS.h>
#ifndef DISABLE_SONY
#include <SonyClie.h>
#endif
#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));
}