aboutsummaryrefslogtreecommitdiffstats
path: root/LibOVR/Src/Util/Util_SystemInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'LibOVR/Src/Util/Util_SystemInfo.cpp')
-rw-r--r--LibOVR/Src/Util/Util_SystemInfo.cpp289
1 files changed, 0 insertions, 289 deletions
diff --git a/LibOVR/Src/Util/Util_SystemInfo.cpp b/LibOVR/Src/Util/Util_SystemInfo.cpp
deleted file mode 100644
index 0fca243..0000000
--- a/LibOVR/Src/Util/Util_SystemInfo.cpp
+++ /dev/null
@@ -1,289 +0,0 @@
-/************************************************************************************
-
-Filename : Util_SystemInfo.cpp
-Content : Various operations to get information about the system
-Created : September 26, 2014
-Author : Kevin Jenkins
-
-Copyright : Copyright 2014 Oculus VR, LLC All Rights reserved.
-
-Licensed under the Oculus VR Rift SDK License Version 3.2 (the "License");
-you may not use the Oculus VR Rift SDK except in compliance with the License,
-which is provided at the time of installation or download, or which
-otherwise accompanies this software in either electronic or hard copy form.
-
-You may obtain a copy of the License at
-
-http://www.oculusvr.com/licenses/LICENSE-3.2
-
-Unless required by applicable law or agreed to in writing, the Oculus VR SDK
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-************************************************************************************/
-
-#include "Util_SystemInfo.h"
-#include "../Kernel/OVR_Timer.h"
-#include "../Kernel/OVR_Threads.h"
-#include "../Kernel/OVR_Log.h"
-#include "../Kernel/OVR_Array.h"
-
-/*
-// Disabled, can't link RiftConfigUtil
-#ifdef OVR_OS_WIN32
-#define _WIN32_DCOM
-#include <comdef.h>
-#include <Wbemidl.h>
-
-# pragma comment(lib, "wbemuuid.lib")
-#endif
-*/
-
-
-namespace OVR { namespace Util {
-
-// From http://blogs.msdn.com/b/oldnewthing/archive/2005/02/01/364563.aspx
-#if defined (OVR_OS_WIN64) || defined (OVR_OS_WIN32)
-
-#pragma comment(lib, "version.lib")
-
-typedef BOOL(WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
-BOOL Is64BitWindows()
-{
-#if defined(_WIN64)
- return TRUE; // 64-bit programs run only on Win64
-#elif defined(_WIN32)
- // 32-bit programs run on both 32-bit and 64-bit Windows
- // so must sniff
- BOOL f64 = FALSE;
- LPFN_ISWOW64PROCESS fnIsWow64Process;
-
- fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle(L"kernel32"), "IsWow64Process");
- if (NULL != fnIsWow64Process)
- {
- return fnIsWow64Process(GetCurrentProcess(), &f64) && f64;
- }
- return FALSE;
-#else
- return FALSE; // Win64 does not support Win16
-#endif
-}
-#endif
-
-const char * OSAsString()
-{
-#if defined (OVR_OS_IPHONE)
- return "IPhone";
-#elif defined (OVR_OS_DARWIN)
- return "Darwin";
-#elif defined (OVR_OS_MAC)
- return "Mac";
-#elif defined (OVR_OS_BSD)
- return "BSD";
-#elif defined (OVR_OS_WIN64) || defined (OVR_OS_WIN32)
- if (Is64BitWindows())
- return "Win64";
- else
- return "Win32";
-#elif defined (OVR_OS_ANDROID)
- return "Android";
-#elif defined (OVR_OS_LINUX)
- return "Linux";
-#elif defined (OVR_OS_BSD)
- return "BSD";
-#else
- return "Other";
-#endif
-}
-
-uint64_t GetGuidInt()
-{
- uint64_t g = Timer::GetTicksNanos();
-
- uint64_t lastTime, thisTime;
- int j;
- // Sleep a small random time, then use the last 4 bits as a source of randomness
- for (j = 0; j < 8; j++)
- {
- lastTime = Timer::GetTicksNanos();
- Thread::MSleep(1);
- Thread::MSleep(0);
- thisTime = Timer::GetTicksNanos();
- uint64_t diff = thisTime - lastTime;
- unsigned int diff4Bits = (unsigned int)(diff & 15);
- diff4Bits <<= 32 - 4;
- diff4Bits >>= j * 4;
- ((char*)&g)[j] ^= diff4Bits;
- }
-
- return g;
-}
-String GetGuidString()
-{
- uint64_t guid = GetGuidInt();
-
- char buff[64];
-#if defined(OVR_CC_MSVC)
- OVR_sprintf(buff, sizeof(buff), "%I64u", guid);
-#else
- OVR_sprintf(buff, sizeof(buff), "%llu", (unsigned long long) guid);
-#endif
- return String(buff);
-}
-
-const char * GetProcessInfo()
-{
- #if defined (OVR_CPU_X86_64 )
- return "64 bit";
-#elif defined (OVR_CPU_X86)
- return "32 bit";
-#else
- return "TODO";
-#endif
-}
-#ifdef OVR_OS_WIN32
-
-
-String OSVersionAsString()
-{
- return GetSystemFileVersionString("\\kernel32.dll");
-}
-String GetSystemFileVersionString(String filePath)
-{
- char strFilePath[MAX_PATH]; // Local variable
- UINT sysDirLen = GetSystemDirectoryA(strFilePath, ARRAYSIZE(strFilePath));
- if (sysDirLen != 0)
- {
- OVR_strcat(strFilePath, MAX_PATH, filePath.ToCStr());
- return GetFileVersionString(strFilePath);
- }
- else
- {
- return "GetSystemDirectoryA failed";
- }
-}
-// See http://stackoverflow.com/questions/940707/how-do-i-programatically-get-the-version-of-a-dll-or-exe-file
-String GetFileVersionString(String filePath)
-{
- String result;
-
- DWORD dwSize = GetFileVersionInfoSizeA(filePath.ToCStr(), NULL);
- if (dwSize == 0)
- {
- OVR_DEBUG_LOG(("Error in GetFileVersionInfoSizeA: %d (for %s)", GetLastError(), filePath.ToCStr()));
- result = filePath + " not found";
- }
- else
- {
- BYTE* pVersionInfo = new BYTE[dwSize];
- if (!pVersionInfo)
- {
- OVR_DEBUG_LOG(("Out of memory allocating %d bytes (for %s)", dwSize, filePath.ToCStr()));
- result = "Out of memory";
- }
- else
- {
- if (!GetFileVersionInfoA(filePath.ToCStr(), 0, dwSize, pVersionInfo))
- {
- OVR_DEBUG_LOG(("Error in GetFileVersionInfo: %d (for %s)", GetLastError(), filePath.ToCStr()));
- result = "Cannot get version info";
- }
- else
- {
- VS_FIXEDFILEINFO* pFileInfo = NULL;
- UINT pLenFileInfo = 0;
- if (!VerQueryValue(pVersionInfo, TEXT("\\"), (LPVOID*)&pFileInfo, &pLenFileInfo))
- {
- OVR_DEBUG_LOG(("Error in VerQueryValue: %d (for %s)", GetLastError(), filePath.ToCStr()));
- result = "File has no version info";
- }
- else
- {
- int major = (pFileInfo->dwFileVersionMS >> 16) & 0xffff;
- int minor = (pFileInfo->dwFileVersionMS) & 0xffff;
- int hotfix = (pFileInfo->dwFileVersionLS >> 16) & 0xffff;
- int other = (pFileInfo->dwFileVersionLS) & 0xffff;
-
- char str[128];
- OVR::OVR_sprintf(str, 128, "%d.%d.%d.%d", major, minor, hotfix, other);
-
- result = str;
- }
- }
-
- delete[] pVersionInfo;
- }
- }
-
- return result;
-}
-
-
-String GetDisplayDriverVersion()
-{
- return GetSystemFileVersionString("\\OVRDisplay32.dll");
-}
-String GetCameraDriverVersion()
-{
- return GetSystemFileVersionString("\\drivers\\OCUSBVID.sys");
-}
-
-// From http://stackoverflow.com/questions/9524309/enumdisplaydevices-function-not-working-for-me
-void GetGraphicsCardList( Array< String > &gpus)
-{
- gpus.Clear();
-
- DISPLAY_DEVICEA dd;
-
- dd.cb = sizeof(dd);
-
- DWORD deviceNum = 0;
- while( EnumDisplayDevicesA(NULL, deviceNum, &dd, 0) ){
- if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE)
- gpus.PushBack(dd.DeviceString);
- deviceNum++;
- }
-}
-#else
-
-// used for driver files
-
-String GetFileVersionString(String /*filePath*/)
-{
- return String();
-}
-
-String GetSystemFileVersionString(String /*filePath*/)
-{
- return String();
-}
-
-String GetDisplayDriverVersion()
-{
- return String();
-}
-
-String GetCameraDriverVersion()
-{
- return String();
-}
-
-#ifdef OVR_OS_MAC
- //use objective c source
-#else
-
-//todo linux, this requires searching /var/ files
-void GetGraphicsCardList(OVR::Array< OVR::String > &gpus)
-{
- gpus.Clear();
-}
-String OSVersionAsString()
-{
- return String();
-}
-#endif //OVR_OS_MAC
-#endif // WIN32
-
-} } // namespace OVR { namespace Util {