diff options
author | milo24x7@gmail.com <milo24x7@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544> | 2013-07-07 22:08:49 +0000 |
---|---|---|
committer | milo24x7@gmail.com <milo24x7@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544> | 2013-07-07 22:08:49 +0000 |
commit | d17521c8b9085a91d08fecfd0b51bbbf7b1dccac (patch) | |
tree | 4673104b47dc68a079cac9f94deefd48dfcb66fa /Stars45/NPClientWraps.cpp | |
parent | 1de4b2bdbb019be6f1b7262c3eba5568d7682edd (diff) | |
download | starshatter-d17521c8b9085a91d08fecfd0b51bbbf7b1dccac.zip starshatter-d17521c8b9085a91d08fecfd0b51bbbf7b1dccac.tar.gz starshatter-d17521c8b9085a91d08fecfd0b51bbbf7b1dccac.tar.bz2 |
Updated open source license declaration and fixed some formatting issues.
Diffstat (limited to 'Stars45/NPClientWraps.cpp')
-rw-r--r-- | Stars45/NPClientWraps.cpp | 514 |
1 files changed, 257 insertions, 257 deletions
diff --git a/Stars45/NPClientWraps.cpp b/Stars45/NPClientWraps.cpp index 8659eec..e4ba0f4 100644 --- a/Stars45/NPClientWraps.cpp +++ b/Stars45/NPClientWraps.cpp @@ -1,257 +1,257 @@ -// *******************************************************************************
-// *
-// * Module Name:
-// * NPClientWraps.cpp
-// *
-// * Software Engineer:
-// * Doyle Nickless - GoFlight Inc., for Eye Control Technology.
-// *
-// * Abstract:
-// * This module implements the wrapper code for interfacing to the NaturalPoint
-// * Game Client API. Developers of client apps can include this module into
-// * their projects to simplify communication with the NaturalPoint software.
-// *
-// * This is necessary since the NPClient DLL is run-time linked rather than
-// * load-time linked, avoiding the need to link a static library into the
-// * client program (only this module is needed, and can be supplied in source
-// * form.)
-// *
-// * Environment:
-// * User mode
-// *
-// *******************************************************************************
-//
-#include "MemDebug.h"
-#include "Game.h"
-#include "Text.h"
-
-#include "NPClient.h"
-#include "NPClientWraps.h"
-
-/////////////
-// Defines ///////////////////////////////////////////////////////////////////////
-/////////////
-//
-
-/////////////////
-// Global Data ///////////////////////////////////////////////////////////////////
-/////////////////
-//
-PF_NP_REGISTERWINDOWHANDLE gpfNP_RegisterWindowHandle = NULL;
-PF_NP_UNREGISTERWINDOWHANDLE gpfNP_UnregisterWindowHandle = NULL;
-PF_NP_REGISTERPROGRAMPROFILEID gpfNP_RegisterProgramProfileID = NULL;
-PF_NP_QUERYVERSION gpfNP_QueryVersion = NULL;
-PF_NP_REQUESTDATA gpfNP_RequestData = NULL;
-PF_NP_GETSIGNATURE gpfNP_GetSignature = NULL;
-PF_NP_GETDATA gpfNP_GetData = NULL;
-PF_NP_STARTCURSOR gpfNP_StartCursor = NULL;
-PF_NP_STOPCURSOR gpfNP_StopCursor = NULL;
-PF_NP_RECENTER gpfNP_ReCenter = NULL;
-PF_NP_STARTDATATRANSMISSION gpfNP_StartDataTransmission = NULL;
-PF_NP_STOPDATATRANSMISSION gpfNP_StopDataTransmission = NULL;
-
-HMODULE ghNPClientDLL = (HMODULE)NULL;
-
-////////////////////////////////////////////////////
-// NaturalPoint Game Client API function wrappers /////////////////////////////
-////////////////////////////////////////////////////
-//
-NPRESULT __stdcall NP_RegisterWindowHandle( HWND hWnd )
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_RegisterWindowHandle )
- result = (*gpfNP_RegisterWindowHandle)( hWnd );
-
- return result;
-} // NP_RegisterWindowHandle()
-
-
-NPRESULT __stdcall NP_UnregisterWindowHandle()
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_UnregisterWindowHandle )
- result = (*gpfNP_UnregisterWindowHandle)();
-
- return result;
-} // NP_UnregisterWindowHandle()
-
-
-NPRESULT __stdcall NP_RegisterProgramProfileID( unsigned short wPPID )
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_RegisterProgramProfileID )
- result = (*gpfNP_RegisterProgramProfileID)( wPPID );
-
- return result;
-} // NP_RegisterProgramProfileID()
-
-
-NPRESULT __stdcall NP_QueryVersion( unsigned short* pwVersion )
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_QueryVersion )
- result = (*gpfNP_QueryVersion)( pwVersion );
-
- return result;
-} // NP_QueryVersion()
-
-
-NPRESULT __stdcall NP_RequestData( unsigned short wDataReq )
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_RequestData )
- result = (*gpfNP_RequestData)( wDataReq );
-
- return result;
-} // NP_RequestData()
-
-NPRESULT __stdcall NP_GetSignature( LPTRACKIRSIGNATURE pSignature )
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_GetSignature )
- result = (*gpfNP_GetSignature)( pSignature );
-
- return result;
-} // NP_GetSignature()
-
-
-NPRESULT __stdcall NP_GetData( LPTRACKIRDATA pTID )
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_GetData )
- result = (*gpfNP_GetData)( pTID );
-
- return result;
-} // NP_GetData()
-
-
-NPRESULT __stdcall NP_StartCursor()
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_StartCursor )
- result = (*gpfNP_StartCursor)();
-
- return result;
-} // NP_StartCursor()
-
-
-NPRESULT __stdcall NP_StopCursor()
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_StopCursor )
- result = (*gpfNP_StopCursor)();
-
- return result;
-} // NP_StopCursor()
-
-
-NPRESULT __stdcall NP_ReCenter()
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_ReCenter )
- result = (*gpfNP_ReCenter)();
-
- return result;
-} // NP_ReCenter()
-
-
-NPRESULT __stdcall NP_StartDataTransmission()
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_StartDataTransmission )
- result = (*gpfNP_StartDataTransmission)();
-
- return result;
-} // NP_StartDataTransmission()
-
-
-NPRESULT __stdcall NP_StopDataTransmission()
-{
- NPRESULT result = NP_ERR_DLL_NOT_FOUND;
-
- if( NULL != gpfNP_StopDataTransmission )
- result = (*gpfNP_StopDataTransmission)();
-
- return result;
-} // NP_StopDataTransmission()
-
-
-//////////////////////////////////////////////////////////////////////////////
-// NPClientInit() -- Loads the DLL and retrieves pointers to all exports
-//
-NPRESULT NPClient_Init( const char* csDLLPath )
-{
- NPRESULT result = NP_OK;
-
- Text csNPClientDLLFullPath;
-
- if (csDLLPath && *csDLLPath)
- csNPClientDLLFullPath = Text(csDLLPath) + "\\";
- csNPClientDLLFullPath += "NPClient.dll";
-
- ghNPClientDLL = ::LoadLibrary( csNPClientDLLFullPath.data() );
-
- if (NULL != ghNPClientDLL) {
- // verify the dll signature
- gpfNP_GetSignature = (PF_NP_GETSIGNATURE)::GetProcAddress( ghNPClientDLL, "NP_GetSignature" );
-
- SIGNATUREDATA pSignature;
- SIGNATUREDATA verifySignature;
- // init the signatures
- strcpy_s(verifySignature.DllSignature, "precise head tracking\n put your head into the game\n now go look around\n\n Copyright EyeControl Technologies");
- strcpy_s(verifySignature.AppSignature, "hardware camera\n software processing data\n track user movement\n\n Copyright EyeControl Technologies");
- // query the dll and compare the results
- NPRESULT vresult = NP_GetSignature( &pSignature );
- if( vresult == NP_OK )
- {
- if ((strcmp(verifySignature.DllSignature,pSignature.DllSignature)==0)
- && (strcmp(verifySignature.AppSignature,pSignature.AppSignature)==0))
- {
- result = NP_OK;
-
- // Get addresses of all exported functions
- gpfNP_RegisterWindowHandle = (PF_NP_REGISTERWINDOWHANDLE)::GetProcAddress( ghNPClientDLL, "NP_RegisterWindowHandle" );
- gpfNP_UnregisterWindowHandle = (PF_NP_UNREGISTERWINDOWHANDLE)::GetProcAddress( ghNPClientDLL, "NP_UnregisterWindowHandle" );
- gpfNP_RegisterProgramProfileID = (PF_NP_REGISTERPROGRAMPROFILEID)::GetProcAddress( ghNPClientDLL, "NP_RegisterProgramProfileID" );
- gpfNP_QueryVersion = (PF_NP_QUERYVERSION)::GetProcAddress( ghNPClientDLL, "NP_QueryVersion" );
- gpfNP_RequestData = (PF_NP_REQUESTDATA)::GetProcAddress( ghNPClientDLL, "NP_RequestData" );
- gpfNP_GetData = (PF_NP_GETDATA)::GetProcAddress( ghNPClientDLL, "NP_GetData" );
- gpfNP_StartCursor = (PF_NP_STARTCURSOR)::GetProcAddress( ghNPClientDLL, "NP_StartCursor" );
- gpfNP_StopCursor = (PF_NP_STOPCURSOR)::GetProcAddress( ghNPClientDLL, "NP_StopCursor" );
- gpfNP_ReCenter = (PF_NP_RECENTER)::GetProcAddress( ghNPClientDLL, "NP_ReCenter" );
- gpfNP_StartDataTransmission = (PF_NP_STARTDATATRANSMISSION)::GetProcAddress( ghNPClientDLL, "NP_StartDataTransmission" );
- gpfNP_StopDataTransmission = (PF_NP_STOPDATATRANSMISSION)::GetProcAddress( ghNPClientDLL, "NP_StopDataTransmission" );
- }
- else
- {
- result = NP_ERR_DLL_NOT_FOUND;
- }
- }
- else
- {
- result = NP_ERR_DLL_NOT_FOUND;
- }
- }
- else
- result = NP_ERR_DLL_NOT_FOUND;
-
- return result;
-
-} // NPClient_Init()
-
-//////////////////////////////////////////////////////////////////////////////
-
-
-
-
+// ******************************************************************************* +// * +// * Module Name: +// * NPClientWraps.cpp +// * +// * Software Engineer: +// * Doyle Nickless - GoFlight Inc., for Eye Control Technology. +// * +// * Abstract: +// * This module implements the wrapper code for interfacing to the NaturalPoint +// * Game Client API. Developers of client apps can include this module into +// * their projects to simplify communication with the NaturalPoint software. +// * +// * This is necessary since the NPClient DLL is run-time linked rather than +// * load-time linked, avoiding the need to link a static library into the +// * client program (only this module is needed, and can be supplied in source +// * form.) +// * +// * Environment: +// * User mode +// * +// ******************************************************************************* +// +#include "MemDebug.h" +#include "Game.h" +#include "Text.h" + +#include "NPClient.h" +#include "NPClientWraps.h" + +///////////// +// Defines /////////////////////////////////////////////////////////////////////// +///////////// +// + +///////////////// +// Global Data /////////////////////////////////////////////////////////////////// +///////////////// +// +PF_NP_REGISTERWINDOWHANDLE gpfNP_RegisterWindowHandle = NULL; +PF_NP_UNREGISTERWINDOWHANDLE gpfNP_UnregisterWindowHandle = NULL; +PF_NP_REGISTERPROGRAMPROFILEID gpfNP_RegisterProgramProfileID = NULL; +PF_NP_QUERYVERSION gpfNP_QueryVersion = NULL; +PF_NP_REQUESTDATA gpfNP_RequestData = NULL; +PF_NP_GETSIGNATURE gpfNP_GetSignature = NULL; +PF_NP_GETDATA gpfNP_GetData = NULL; +PF_NP_STARTCURSOR gpfNP_StartCursor = NULL; +PF_NP_STOPCURSOR gpfNP_StopCursor = NULL; +PF_NP_RECENTER gpfNP_ReCenter = NULL; +PF_NP_STARTDATATRANSMISSION gpfNP_StartDataTransmission = NULL; +PF_NP_STOPDATATRANSMISSION gpfNP_StopDataTransmission = NULL; + +HMODULE ghNPClientDLL = (HMODULE)NULL; + +//////////////////////////////////////////////////// +// NaturalPoint Game Client API function wrappers ///////////////////////////// +//////////////////////////////////////////////////// +// +NPRESULT __stdcall NP_RegisterWindowHandle( HWND hWnd ) +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_RegisterWindowHandle ) + result = (*gpfNP_RegisterWindowHandle)( hWnd ); + + return result; +} // NP_RegisterWindowHandle() + + +NPRESULT __stdcall NP_UnregisterWindowHandle() +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_UnregisterWindowHandle ) + result = (*gpfNP_UnregisterWindowHandle)(); + + return result; +} // NP_UnregisterWindowHandle() + + +NPRESULT __stdcall NP_RegisterProgramProfileID( unsigned short wPPID ) +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_RegisterProgramProfileID ) + result = (*gpfNP_RegisterProgramProfileID)( wPPID ); + + return result; +} // NP_RegisterProgramProfileID() + + +NPRESULT __stdcall NP_QueryVersion( unsigned short* pwVersion ) +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_QueryVersion ) + result = (*gpfNP_QueryVersion)( pwVersion ); + + return result; +} // NP_QueryVersion() + + +NPRESULT __stdcall NP_RequestData( unsigned short wDataReq ) +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_RequestData ) + result = (*gpfNP_RequestData)( wDataReq ); + + return result; +} // NP_RequestData() + +NPRESULT __stdcall NP_GetSignature( LPTRACKIRSIGNATURE pSignature ) +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_GetSignature ) + result = (*gpfNP_GetSignature)( pSignature ); + + return result; +} // NP_GetSignature() + + +NPRESULT __stdcall NP_GetData( LPTRACKIRDATA pTID ) +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_GetData ) + result = (*gpfNP_GetData)( pTID ); + + return result; +} // NP_GetData() + + +NPRESULT __stdcall NP_StartCursor() +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_StartCursor ) + result = (*gpfNP_StartCursor)(); + + return result; +} // NP_StartCursor() + + +NPRESULT __stdcall NP_StopCursor() +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_StopCursor ) + result = (*gpfNP_StopCursor)(); + + return result; +} // NP_StopCursor() + + +NPRESULT __stdcall NP_ReCenter() +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_ReCenter ) + result = (*gpfNP_ReCenter)(); + + return result; +} // NP_ReCenter() + + +NPRESULT __stdcall NP_StartDataTransmission() +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_StartDataTransmission ) + result = (*gpfNP_StartDataTransmission)(); + + return result; +} // NP_StartDataTransmission() + + +NPRESULT __stdcall NP_StopDataTransmission() +{ + NPRESULT result = NP_ERR_DLL_NOT_FOUND; + + if( NULL != gpfNP_StopDataTransmission ) + result = (*gpfNP_StopDataTransmission)(); + + return result; +} // NP_StopDataTransmission() + + +////////////////////////////////////////////////////////////////////////////// +// NPClientInit() -- Loads the DLL and retrieves pointers to all exports +// +NPRESULT NPClient_Init( const char* csDLLPath ) +{ + NPRESULT result = NP_OK; + + Text csNPClientDLLFullPath; + + if (csDLLPath && *csDLLPath) + csNPClientDLLFullPath = Text(csDLLPath) + "\\"; + csNPClientDLLFullPath += "NPClient.dll"; + + ghNPClientDLL = ::LoadLibrary( csNPClientDLLFullPath.data() ); + + if (NULL != ghNPClientDLL) { + // verify the dll signature + gpfNP_GetSignature = (PF_NP_GETSIGNATURE)::GetProcAddress( ghNPClientDLL, "NP_GetSignature" ); + + SIGNATUREDATA pSignature; + SIGNATUREDATA verifySignature; + // init the signatures + strcpy_s(verifySignature.DllSignature, "precise head tracking\n put your head into the game\n now go look around\n\n Copyright EyeControl Technologies"); + strcpy_s(verifySignature.AppSignature, "hardware camera\n software processing data\n track user movement\n\n Copyright EyeControl Technologies"); + // query the dll and compare the results + NPRESULT vresult = NP_GetSignature( &pSignature ); + if( vresult == NP_OK ) + { + if ((strcmp(verifySignature.DllSignature,pSignature.DllSignature)==0) + && (strcmp(verifySignature.AppSignature,pSignature.AppSignature)==0)) + { + result = NP_OK; + + // Get addresses of all exported functions + gpfNP_RegisterWindowHandle = (PF_NP_REGISTERWINDOWHANDLE)::GetProcAddress( ghNPClientDLL, "NP_RegisterWindowHandle" ); + gpfNP_UnregisterWindowHandle = (PF_NP_UNREGISTERWINDOWHANDLE)::GetProcAddress( ghNPClientDLL, "NP_UnregisterWindowHandle" ); + gpfNP_RegisterProgramProfileID = (PF_NP_REGISTERPROGRAMPROFILEID)::GetProcAddress( ghNPClientDLL, "NP_RegisterProgramProfileID" ); + gpfNP_QueryVersion = (PF_NP_QUERYVERSION)::GetProcAddress( ghNPClientDLL, "NP_QueryVersion" ); + gpfNP_RequestData = (PF_NP_REQUESTDATA)::GetProcAddress( ghNPClientDLL, "NP_RequestData" ); + gpfNP_GetData = (PF_NP_GETDATA)::GetProcAddress( ghNPClientDLL, "NP_GetData" ); + gpfNP_StartCursor = (PF_NP_STARTCURSOR)::GetProcAddress( ghNPClientDLL, "NP_StartCursor" ); + gpfNP_StopCursor = (PF_NP_STOPCURSOR)::GetProcAddress( ghNPClientDLL, "NP_StopCursor" ); + gpfNP_ReCenter = (PF_NP_RECENTER)::GetProcAddress( ghNPClientDLL, "NP_ReCenter" ); + gpfNP_StartDataTransmission = (PF_NP_STARTDATATRANSMISSION)::GetProcAddress( ghNPClientDLL, "NP_StartDataTransmission" ); + gpfNP_StopDataTransmission = (PF_NP_STOPDATATRANSMISSION)::GetProcAddress( ghNPClientDLL, "NP_StopDataTransmission" ); + } + else + { + result = NP_ERR_DLL_NOT_FOUND; + } + } + else + { + result = NP_ERR_DLL_NOT_FOUND; + } + } + else + result = NP_ERR_DLL_NOT_FOUND; + + return result; + +} // NPClient_Init() + +////////////////////////////////////////////////////////////////////////////// + + + + |