hxwinver.cpp
来自「symbian 下的helix player源代码」· C++ 代码 · 共 1,014 行 · 第 1/3 页
CPP
1,014 行
{
rVersionInfo.dwMachineType = HX_MACHINE_TOOSLOW;
}
if (dwWinFlags & WF_CPU486)
{
#ifdef _WIN16
//=-=w16.3 Is586() asserts pentium.obj; must be fixed; #ifdefed to TRUE
int nVerGreaterThan486 = TRUE;
#else
int nVerGreaterThan486 = Is586();
#endif
switch(nVerGreaterThan486)
{
case 0: rVersionInfo.dwMachineType = HX_MACHINE_486; break;
case 1: rVersionInfo.dwMachineType = HX_MACHINE_586; break;
case 2: rVersionInfo.dwMachineType = HX_MACHINE_686; break;
default: rVersionInfo.dwMachineType = HX_MACHINE_UNKNOWN; break;
}
}
if (dwWinFlags & WF_80x87)
{
rVersionInfo.bFPUAvailable = TRUE;
}
#endif
}
////////// END WINDOWS SPECIFIC //////////
////////// START MACINTOSH SPECIFIC CODE//////////
#elif defined(_MACINTOSH) || defined(_MAC_UNIX)
#if defined(_CARBON) || defined(_MAC_UNIX)
rVersionInfo.dwPlatformId = HX_PLATFORM_MACOT;
rVersionInfo.dwMachineType = HX_MACHINE_PPC;
rVersionInfo.bFPUAvailable = FALSE;
#else
if (HasOpenTransport())
rVersionInfo.dwPlatformId = HX_PLATFORM_MACOT;
else
rVersionInfo.dwPlatformId = HX_PLATFORM_MACTCP;
if (IsPPC())
rVersionInfo.dwMachineType = HX_MACHINE_PPC;
else
rVersionInfo.dwMachineType = HX_MACHINE_68K;
rVersionInfo.bFPUAvailable = HasFPU();
#endif
GetMacSystemVersion(&rVersionInfo.wMajorVersion,
&rVersionInfo.wMinorVersion,
&rVersionInfo.wReleaseVersion);
////////// END MACINTOSH SPECIFIC CODE////////////
#elif defined(_UNIX)
struct utsname osInfo; // structure to hold uname info
if (uname(&osInfo) != -1)
{
double nVersionNum = atof(osInfo.release); // version number
char *pPeriod = NULL;
rVersionInfo.wMajorVersion = (UINT16)nVersionNum;
if (pPeriod = strchr(osInfo.release,'.'))
rVersionInfo.wMinorVersion = atoi(pPeriod+1);
// CODE FOR LINUX
#ifdef _LINUX
// These are defaults, they are not 100% correct but they shouldn't be needed
rVersionInfo.dwPlatformId = HX_PLATFORM_LINUX;
rVersionInfo.dwMachineType = HX_MACHINE_586;
// CODE FOR SOLARIS
#elif _SOLARIS
// These are defaults, they are not 100% correct but they shouldn't be needed
rVersionInfo.dwPlatformId = HX_PLATFORM_SOLARIS;
rVersionInfo.dwMachineType = HX_MACHINE_SPARC;
// do platform mapping
if (!strcasecmp("SunOS",osInfo.sysname))
{
if (nVersionNum > 5.0)
rVersionInfo.dwPlatformId = HX_PLATFORM_SOLARIS;
else
rVersionInfo.dwPlatformId = HX_PLATFORM_SUNOS;
}
// do machine mapping
if (!strcasecmp("sun4m",osInfo.machine))
rVersionInfo.dwMachineType = HX_MACHINE_SPARC;
// CODE FOR IRIX
#elif _IRIX
rVersionInfo.dwPlatformId = HX_PLATFORM_IRIX;
rVersionInfo.dwMachineType = HX_MACHINE_MIPS;
// CODE FOR SUNOS
#elif _SUNOS
// These are defaults, they are not 100% correct but they shouldn't be needed
rVersionInfo.dwPlatformId = HX_PLATFORM_SUNOS;
rVersionInfo.dwMachineType = HX_MACHINE_SPARC;
// do platform mapping
if (!strcasecmp("SunOS",osInfo.sysname))
{
if (nVersionNum > 5.0)
rVersionInfo.dwPlatformId = HX_PLATFORM_SOLARIS;
else
rVersionInfo.dwPlatformId = HX_PLATFORM_SUNOS;
}
// do machine mapping
if (!strcasecmp("sun4m",osInfo.machine))
rVersionInfo.dwMachineType = HX_MACHINE_SPARC;
#else
rVersionInfo.dwPlatformId = HX_PLATFORM_UNKNOWN;
rVersionInfo.dwMachineType = HX_MACHINE_UNKNOWN;
#endif
}
rVersionInfo.bFPUAvailable = TRUE;
////////// END UNIX SPECIFIC CODE////////////
#elif defined(_SYMBIAN)
rVersionInfo.dwPlatformId = HX_PLATFORM_SYMBIAN;
#ifdef __WINS__
rVersionInfo.dwMachineType = HX_MACHINE_SYMEMULATOR;
#else
rVersionInfo.dwMachineType = HX_MACHINE_ARM;
#endif
//XXGFW need to not hard code this.
rVersionInfo.wMajorVersion = 6;
rVersionInfo.wMinorVersion = 1;
rVersionInfo.wReleaseVersion = 0;
rVersionInfo.bFPUAvailable = FALSE;
#elif defined(_OPENWAVE)
rVersionInfo.dwPlatformId = HX_PLATFORM_OPENWAVE;
#ifdef _OPENWAVE_SIMULATOR
rVersionInfo.dwMachineType = HX_MACHINE_OWEMULATOR;
#else
rVersionInfo.dwMachineType = HX_MACHINE_ARM;
#endif
// XXXSAB need to not hard code this.
rVersionInfo.wMajorVersion = 6;
rVersionInfo.wMinorVersion = 1;
rVersionInfo.wReleaseVersion = 0;
rVersionInfo.bFPUAvailable = FALSE;
#else
#error Add your platform code here!
#endif
if (lpVersionInfo)
{
*lpVersionInfo = rVersionInfo;
}
return( rVersionInfo.dwPlatformId );
}
/*
* const char* HXGetOSName( ULONG32 nPlatformID)
*
* PARAMETERS:
* nPlatformID: A platformID (defined in hxwinver.h)
*
* DESCRIPTION:
* Returns an OS string. Indicates the OS, not the build of
* the player.
*
* RETURNS:
* pointer to static const buffer containing OS string.
*/
const char* HXGetOSName(ULONG32 nPlatformID)
{
const char* strResult = NULL;
switch (nPlatformID)
{
case (HX_PLATFORM_WIN16) :
strResult="Win16";
break;
case (HX_PLATFORM_WIN32S) :
strResult="Win32S";
break;
case (HX_PLATFORM_WIN95) :
strResult="Win95";
break;
case (HX_PLATFORM_WIN98) :
strResult="Win98";
break;
case (HX_PLATFORM_WINNT) :
strResult="WinNT";
break;
case (HX_PLATFORM_MACOT) :
strResult="MacOT";
break;
case (HX_PLATFORM_MACTCP) :
strResult="MacTCP";
break;
case (HX_PLATFORM_LINUX) :
strResult="Linux";
break;
case (HX_PLATFORM_SOLARIS) :
strResult="Solaris";
break;
case (HX_PLATFORM_IRIX) :
strResult="Irix";
break;
case (HX_PLATFORM_SUNOS) :
strResult="SunOS";
break;
case (HX_PLATFORM_SYMBIAN):
strResult="Symbian";
break;
case (HX_PLATFORM_UNKNOWN) :
default:
strResult="UNK";
break;
}
return(strResult);
}
/*
* const char* HXGetMachName(ULONG32 nMachineType)
*
* PARAMETERS:
* nMachineType: A machine ID (defined in hxwinver.h)
*
* DESCRIPTION:
* Returns a Machine string. Indicates the installed CPU,
* not the build of the player.
*
* RETURNS:
* pointer to static const buffer containing Machine string.
*/
const char* HXGetMachName(ULONG32 nMachineType)
{
const char* pProcName = NULL;
switch (nMachineType)
{
case HX_MACHINE_486:
pProcName = "486";
break;
case HX_MACHINE_586:
pProcName = "586";
break;
case HX_MACHINE_686:
pProcName = "686";
break;
case HX_MACHINE_PPC:
pProcName = "PPC";
break;
case HX_MACHINE_68K:
pProcName = "68K";
break;
case HX_MACHINE_ALPHA:
pProcName = "Alpha";
break;
case HX_MACHINE_MIPS:
pProcName = "Mips";
break;
case HX_MACHINE_SPARC:
pProcName = "Sparc";
break;
case HX_MACHINE_TOOSLOW:
pProcName = "SLOW";
break;
case HX_MACHINE_ARM:
pProcName = "ARM";
break;
case HX_MACHINE_SYMEMULATOR:
pProcName = "SymbianEmulator";
break;
case HX_MACHINE_UNKNOWN:
default:
pProcName = "UNK";
break;
}
return(pProcName);
}
/*
* const char* HXGetVerEncodedName( HXVERSIONINFO* pVersionInfo,
* const char* pProductName, const char* pProductVer,
* const char* pDistCode)
*
* PARAMETERS:
* pVersionInfo : A pointer to the version info struct to receive the
* results.
*
* pProductName : A pointer to the name of the product like play16 for
* the 16bit compiled player or plug32 for the 32bit
* compiled plugin.
*
* pProductVer : A pointer to the string form of the version of the
* product like 2.0b3.
*
* pDistCode : A pointer to the string form of the version of the
* distribution code like PN01 for the player.
*
* DESCRIPTION:
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?