aboutsummaryrefslogtreecommitdiff
path: root/backends/PalmOS/Src/init_sony.cpp
diff options
context:
space:
mode:
authorChris Apers2004-11-09 10:45:47 +0000
committerChris Apers2004-11-09 10:45:47 +0000
commit618971dd2fbee8b075b7c888f3abdff8aba47897 (patch)
tree50350983581f5ba727b372d6dca7b611dcef3994 /backends/PalmOS/Src/init_sony.cpp
parent463544099832fd8af37b813afc7c3fffc96e78aa (diff)
downloadscummvm-rg350-618971dd2fbee8b075b7c888f3abdff8aba47897.tar.gz
scummvm-rg350-618971dd2fbee8b075b7c888f3abdff8aba47897.tar.bz2
scummvm-rg350-618971dd2fbee8b075b7c888f3abdff8aba47897.zip
Gathered common functions into new source files
svn-id: r15743
Diffstat (limited to 'backends/PalmOS/Src/init_sony.cpp')
-rw-r--r--backends/PalmOS/Src/init_sony.cpp91
1 files changed, 91 insertions, 0 deletions
diff --git a/backends/PalmOS/Src/init_sony.cpp b/backends/PalmOS/Src/init_sony.cpp
new file mode 100644
index 0000000000..bdf83e2cf1
--- /dev/null
+++ b/backends/PalmOS/Src/init_sony.cpp
@@ -0,0 +1,91 @@
+#include <PalmOS.h>
+#include <SonyClie.h>
+#include "init_sony.h"
+
+UInt16 SilkInit(UInt32 *retVersion) {
+ SonySysFtrSysInfoP sonySysFtrSysInfoP;
+ UInt32 version;
+ UInt16 slkRefNum;
+ Err e;
+
+ // Sony HiRes+
+ if (!(e = FtrGet(sonySysFtrCreator, sonySysFtrNumSysInfoP, (UInt32*)&sonySysFtrSysInfoP))) {
+ if (sonySysFtrSysInfoP->libr & sonySysFtrSysInfoLibrSilk) {
+
+ if ((e = SysLibFind(sonySysLibNameSilk, &slkRefNum)))
+ if (e == sysErrLibNotFound)
+ e = SysLibLoad(sonySysFileTSilkLib, sonySysFileCSilkLib, &slkRefNum);
+
+ if (!e) {
+ e = FtrGet(sonySysFtrCreator, sonySysFtrNumVskVersion, &version);
+ if (e) {
+ // v1 = NR
+ e = SilkLibOpen(slkRefNum);
+ if(!e) version = vskVersionNum1;
+
+ } else {
+ // v2 = NX/NZ
+ // v3 = UX...
+ e = VskOpen(slkRefNum);
+ }
+ }
+ } else
+ e = sysErrLibNotFound;
+ }
+
+ if (e) {
+ version = 0;
+ slkRefNum = sysInvalidRefNum;
+ }
+
+ *retVersion = version;
+ return slkRefNum;
+}
+
+void SilkRelease(UInt16 slkRefNum) {
+ if (slkRefNum != sysInvalidRefNum)
+ SilkLibClose(slkRefNum);
+}
+
+UInt16 SonyHRInit(UInt32 depth) {
+ SonySysFtrSysInfoP sonySysFtrSysInfoP;
+ Err e;
+ UInt16 HRrefNum;
+
+ // test if sonyHR is present
+ if (!(e = FtrGet(sonySysFtrCreator, sonySysFtrNumSysInfoP, (UInt32*)&sonySysFtrSysInfoP))) {
+ if (sonySysFtrSysInfoP->libr & sonySysFtrSysInfoLibrHR) { // HR available
+
+ if ((e = SysLibFind(sonySysLibNameHR, &HRrefNum)))
+ if (e == sysErrLibNotFound) // can't find lib
+ e = SysLibLoad( 'libr', sonySysFileCHRLib, &HRrefNum);
+
+ // Now we can use HR lib. Executes Open library.
+ if (!e) e = HROpen(HRrefNum);
+ }
+ }
+
+ if (e) HRrefNum = sysInvalidRefNum;
+
+ if (HRrefNum != sysInvalidRefNum) {
+ UInt32 width = hrWidth;
+ UInt32 height = hrHeight;
+ Boolean color = true;
+
+ e = HRWinScreenMode(HRrefNum, winScreenModeSet, &width, &height, &depth, &color);
+ // error ? release and return an invalid reference number
+ if (e) {
+ SonyHRRelease(HRrefNum);
+ HRrefNum = sysInvalidRefNum;
+ }
+ }
+
+ return HRrefNum;
+}
+
+void SonyHRRelease(UInt16 HRrefNum) {
+ if (HRrefNum != sysInvalidRefNum) {
+ HRClose(HRrefNum);
+ //SysLibRemove(gVars->HRrefNum); // never call this !!
+ }
+}