hostile-takeover/inc/SonySystemFtr.h
2014-07-06 17:47:28 -07:00

195 lines
8.7 KiB
C
Raw Blame History

/******************************************************************************
* *
* (C) Copyright 2000-2002, Sony Corporation *
* *
*----------------------------------------------------------------------------*
* *
* <IDENTIFICATION> *
* file name : $Workfile: SonySystemFtr.h $
* *
* <PROFILE> *
* Feature related definitions for Sony System *
* *
* <HISTORY> *
* Started on : 00/11/28 *
* Last Modified: $Date: 2003/08/28 00:13:29 $
* *
******************************************************************************/
/* this file is best viewed by setting TAB-stop as 3 */
/* this file could be used in both ARM-native and 68K applications */
#ifndef __SONYSYSTEMFTR_H__
#define __SONYSYSTEMFTR_H__
/******************************************************************************
* Includes *
******************************************************************************/
#include <SystemMgr.h>
#include <SonyTypes.h>
#include <SonySystemResources.h>
/******************************************************************************
* Utility Definitions *
******************************************************************************/
#ifndef CPU_ARM
#define CPU_ARM (3)
#endif
#if CPU_TYPE == CPU_ARM /* || CPU_ENDIAN == CPU_ENDIAN_LITTLE */
// Do we have to care about x86?
#define _EndianSwap16(x) \
((((x) >> 8) & 0xFF) | \
(((x) & 0xFF) << 8))
#define _EndianSwap32(x) \
((((x) >> 24) & 0x000000FFL) | \
(((x) >> 8) & 0x0000FF00L) | \
(((x) & 0x0000FF00L) << 8) | \
(((x) & 0x000000FFL) << 24))
#else
// CPU_68K || CPU_ENDIAN_BIG
#define _EndianSwap16(x) (x) /* nop */
#define _EndianSwap32(x) (x) /* nop */
#endif
/******************************************************************************
* Features *
******************************************************************************/
/*** Sony Ftr Creator ***/
#define sonySysFtrCreator sonySysFileCSony
/*** Ftr Number ***/ /* UInt16 */
/* for Global System information */
#define sonySysFtrNumSysInfoP (1) /* ptr to SysInfo */
#define sonySysFtrNumStringInfoP (2) /* ptr to StringInfo */
/* for JogAssist */
#define sonySysFtrNumJogAstMaskP (3) /* ptr to JogAstMask */
#define sonySysFtrNumJogAstMOCardNoP (4) /* ptr to JogAstMaskOwnerCardNo */
#define sonySysFtrNumJogAstMODbIDP (5) /* ptr to JogAstMaskOwnerDbID */
/* for PalmOS5 or later */
#define sonySysFtrNumJogAstControlP (6) /* ptr to JogAssistControl flag */
/* for Version */
#define sonySysFtrNumSystemVersion (0x0100) /* SonySys */
#define sonySysFtrNumJogAstVersion (0x0101) /* JogAssistExtn */
#define sonySysFtrNumVskVersion (0x0102) /* VirtualSilkLibExtn */
#define sonySysFtrNumRmcVersion (0x0103) /* RemoteContollerLibExtn */
#define sonySysFtrNumIrcVersion (0x0104) /* IrCommanderLibExtn */
#define sonySysFtrNumSndVersion (0x0105) /* SndLibExtn */
/* should we define ver for lib as well? */
#define sonySysFtrNumHRLibVersion (0x0110) /* HiResoLib */
#define sonySysFtrNumScsiLibVersion (0x0111) /* SCSILib */
#define sonySysFtrNumJpegUtilLibVersion (0x0112) /* JpegUitlLib */
#define sonySysFtrNumJpegLibVersion (0x0113) /* JpegLib */
#define sonySysFtrNumMMLibVersion (0x0114) /* MMLib */
#define sonySysFtrNumMMUtilLibVersion (0x0115) /* MMUtilLib */
#define sonySysFtrNumMMUrlLibVersion (0x0116) /* MMUrlLib */
/******************************************************************************
* Structures for Featrures *
******************************************************************************/
/* Those definitions are depricated on PalmOS_5, exist only for compatibilities */
/*** SysInfoP ***/
typedef struct S_SonySysFtrSysInfo {
UInt16 revision;
UInt16 rsv16_00;
UInt32 extn; /* loaded extension */
UInt32 libr; /* loaded libr */
UInt32 rsv32_00;
UInt32 rsv32_01;
void *rsvP;
UInt32 status; /* current system status */
UInt32 msStatus; /* current MemoryStick status */
UInt32 rsv32_10;
UInt16 msSlotNum; /* number of slot of MemoryStick */
UInt16 jogType;
UInt16 rmcType;
} SonySysFtrSysInfoType;
typedef SonySysFtrSysInfoType *SonySysFtrSysInfoP;
/* revision field */
#define sonySysFtrSysInfoRevision (1)
/* extn field */
#define sonySysFtrSysInfoExtnJog (0x00000001L) /* vchrJogEvent usable */
#define sonySysFtrSysInfoExtnRmc (0x00000002L) /* vchrRmcEvent usable */
#define sonySysFtrSysInfoExtnHold (0x00000004L) /* Hold switch usable */
#define sonySysFtrSysInfoExtnJogAst (0x00000008L) /* JogAssist usable */
#define sonySysFtrSysInfoExtnSilk (0x00000010L) /* Software silk usable */
#define sonySysFtrSysInfoExtnCapBtn (0x00000020L) /* vchrCapEvent usable */
#define sonySysFtrSysInfoExtnKB (0x00000040L) /* Hardware Keyboard usable */
/* libr field */
#define sonySysFtrSysInfoLibrHR (0x00000001L) /* HR-Lib usable */
#define sonySysFtrSysInfoLibrMsa (0x00000002L) /* Msa-Lib usable */
#define sonySysFtrSysInfoLibrRmc (0x00000004L) /* Rmc-Lib usable */
#define sonySysFtrSysInfoLibrMsScsi (0x00000008L) /* MsScsi-Lib usable */
#define sonySysFtrSysInfoLibrIrc (0x00000010L) /* Irc-Lib usable */
#define sonySysFtrSysInfoLibrFm (0x00000020L) /* Sound-Lib usable */
#define sonySysFtrSysInfoLibrCap (0x00000040L) /* Capture-Lib usable */
#define sonySysFtrSysInfoLibrJpeg (0x00000080L) /* Jpeg-Lib usable */
#define sonySysFtrSysInfoLibrSilk (0x00000100L) /* Silk-Lib usable */
/* status field */ /* 1: on(inserted/enabled), 0: off(removed/disabled) */
#define sonySysFtrSysInfoStatusHP (0x00000001) /* HeadPhone */
#define sonySysFtrSysInfoStatusHoldOn (0x00000002) /* Hold switch */
#define sonySysFtrSysInfoStatusLcdRotate (0x00000004) /* Lcd Rotate status */
#define sonySysFtrSysInfoStatusLcdFlip (0x00000008) /* Lcd Flip status*/
#define sonySysFtrSysInfoStatusCamRotate (0x00000010) /* Cam Rotate status */
/* msStatus field */ /* 1: inserted, 0: removed */
#define sonySysFtrSysInfoMsStatus1MS (0x00000001) /* MS in Slot 1*/
#define sonySysFtrSysInfoMsStatus1StrgMS (0x00000002) /* StorageMS in Slot 1*/
#define sonySysFtrSysInfoMsStatus1MGMS (0x00000004) /* MG-MS in Slot 1*/
#define sonySysFtrSysInfoMsStatus1WP (0x00000008) /* WriteProtected */
#define sonySysFtrSysInfoMsStatus1ReadOnly (0x00000010) /* Read Only */
#define sonySysFtrSysInfoMsStatus1IO (0x00000020) /* IO Expansion Module */
#define sonySysFtrSysInfoMsStatus1Mask (0x000000FF) /* Mask for Slot 1 */
/* jogType field */
#define sonySysFtrSysInfoJogTypeNone (0) /* No Jog available */
#define sonySysFtrSysInfoJogType1 (1) /* 2D Jog (PEG-S300/500) */
#define sonySysFtrSysInfoJogType2 (2) /* 2D Jog with Back */
/* rmcType field */
#define sonySysFtrSysInfoRmcTypeNone (0) /* No Rmc available */
#define sonySysFtrSysInfoRmcType1 (1) /* 6 buttons w/o display */
#define sonySysFtrSysInfoRmcType2 (2) /* Audio Adapter */
/*** StringInfoP ***/
typedef struct S_SonySysFtrStringInfo {
/* All chars are described with ASCII */ /* must be null-terminated */
/* offset: ex. */
Char maker[16]; /* 0/0x0000: ex. "Sony Corp." */
Char model[16]; /* 16/0x0010: ex. "PEG-S300" */
Char ship[16]; /* 32/0x0020: ex. "Japan" */
Char os[32]; /* 48/0x0030: ex. "Palm OS 3.5" */
Char cpu[32]; /* 80/0x0050: ex. "Motorola DragonBall-VZ(33MHz)" */
Char comment[128]; /* 112/0x0070: ex. "Personal Entertainment..." */
UInt16 code; /* 240/0x00F0: code for comment2 */
Char comment2[254]; /* 242/0x00F2: ex. "<22>p<EFBFBD>[<5B>\<5C>i<EFBFBD><69><EFBFBD>E<EFBFBD>G<EFBFBD><47><EFBFBD>^<5E>e<EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>g..." */
/* 496/0x01F0: */
} SonySysFtrStringInfoType;
typedef SonySysFtrStringInfoType *SonySysFtrStringInfoP;
/* CAUTION: those strings is not guaranteed to be correct by Sony. Null
strings are possible. */
/* code for 'code' field' */
#define sonySysFtrStingInfoCodeASCII (0x0001)
#define sonySysFtrStingInfoCode8859 (0x0003)
#define sonySysFtrStingInfoCodeMSJIS (0x0081)
/*** JogAstMaskP ***/
typedef void *JogAstMaskP;
/* related specs are defined in JogAst.h */
#endif // __SONYSYSTEMFTR_H__