From 0273d369b6b8562f052d74b9a7eb4b997a9c6920 Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Fri, 23 Nov 2012 18:52:25 +0000 Subject: To be discontinued... git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@194 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp | 219 ------------------------ 1 file changed, 219 deletions(-) delete mode 100644 FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp (limited to 'FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp') diff --git a/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp b/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp deleted file mode 100644 index d586f0c0..00000000 --- a/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/******************************************************************************** -* FaceTrackNoIR This program is a private project of the some enthusiastic * -* gamers from Holland, who don't like to pay much for * -* head-tracking. * -* * -* Copyright (C) 2010 Wim Vriend (Developing) * -* Ron Hendriks (Researching and Testing) * -* * -* Homepage * -* * -* This program is free software; you can redistribute it and/or modify it * -* under the terms of the GNU General Public License as published by the * -* Free Software Foundation; either version 3 of the License, or (at your * -* option) any later version. * -* * -* This program is distributed in the hope that it will be useful, but * -* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * -* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * -* more details. * -* * -* You should have received a copy of the GNU General Public License along * -* with this program; if not, see . * -* * -* PPJoyServer PPJoyServer is the Class, that communicates headpose-data * -* to the Virtual Joystick, created by Deon van der Westhuysen.* -********************************************************************************/ -/* - Modifications (last one on top): - 20110401 - WVR: Moved protocol to a DLL, convenient for installation etc. - 20101224 - WVR: Base class is no longer inheriting QThread. sendHeadposeToGame - is called from run() of Tracker.cpp -*/ -#include "ftnoir_protocol_ppjoy.h" - -static const char* DevName = "\\\\.\\PPJoyIOCTL"; - -/** constructor **/ -FTNoIR_Protocol::FTNoIR_Protocol() -{ -char strDevName[100]; - - // Initialize arrays - for (int i = 0;i < 3;i++) { - centerPos[i] = 0; - centerRot[i] = 0; - } - selectedPPJoy = 1; - loadSettings(); - - /* Open a handle to the control device for the first virtual joystick. */ - /* Virtual joystick devices are named PPJoyIOCTL1 to PPJoyIOCTL16. */ - sprintf_s(strDevName, "%s%d", DevName, selectedPPJoy); - h = CreateFileA((LPCSTR) strDevName,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL); - - /* Make sure we could open the device! */ - if (h == INVALID_HANDLE_VALUE) - { - QMessageBox::critical(0, "Connection Failed", QString("FaceTrackNoIR failed to connect to Virtual Joystick %1.\nCheck if it was properly installed!").arg(selectedPPJoy)); - return; - } -} - -/** destructor **/ -FTNoIR_Protocol::~FTNoIR_Protocol() -{ - /* Make sure we could open the device! */ - if (h == INVALID_HANDLE_VALUE) { - return; - } - - // - // Free the Virtual Joystick - // - CloseHandle(h); -} - -/** helper to Auto-destruct **/ -void FTNoIR_Protocol::Release() -{ - delete this; -} - -void FTNoIR_Protocol::Initialize() -{ - return; -} - -// -// Limit the Joystick values -// -void FTNoIR_Protocol::checkAnalogLimits() { - for (int i = 0;i < NUM_ANALOG;i++) { - if (Analog[i]>PPJOY_AXIS_MAX) { - Analog[i]=PPJOY_AXIS_MAX; - } - else if (Analog[i]pitch; - virtRotY = headpose->yaw; - virtRotZ = headpose->roll; - - virtPosX = headpose->x; - virtPosY = headpose->y; - virtPosZ = headpose->z; - - /* Initialise the IOCTL data structure */ - JoyState.Signature= JOYSTICK_STATE_V1; - JoyState.NumAnalog= NUM_ANALOG; // Number of analog values - Analog= JoyState.Analog; // Keep a pointer to the analog array for easy updating - Digital= JoyState.Digital; // Keep a pointer to the digital array for easy updating - JoyState.NumDigital= NUM_DIGITAL; // Number of digital values - - /* Make sure we could open the device! */ - /* MessageBox in run() does not work! (runtime error...)*/ - if (h == INVALID_HANDLE_VALUE) { - return; - } - - // The effective angle for faceTracking will be < 90 degrees, so we assume a smaller range here - Analog[0] = scale2AnalogLimits( virtRotX, -50.0f, 50.0f ); // Pitch - Analog[1] = scale2AnalogLimits( virtRotY, -50.0f, 50.0f ); // Yaw - Analog[2] = scale2AnalogLimits( virtRotZ, -50.0f, 50.0f ); // Roll - - // The effective movement for faceTracking will be < 50 cm, so we assume a smaller range here - Analog[3] = scale2AnalogLimits( virtPosX, -40.0f, 40.0f ); // X - - Analog[4] = scale2AnalogLimits( virtPosY, -40.0f, 40.0f ); // Y - Analog[5] = scale2AnalogLimits( virtPosZ, -40.0f, 40.0f ); // Z - - checkAnalogLimits(); - - /* Send request to PPJoy for processing. */ - /* Currently there is no Return Code from PPJoy, this may be added at a */ - /* later stage. So we pass a 0 byte output buffer. */ - if (!DeviceIoControl( h, IOCTL_PPORTJOY_SET_STATE, &JoyState, sizeof(JoyState), NULL, 0, &RetSize, NULL)) - { - return; - } -} - -// -// Returns 'true' if all seems OK. -// -bool FTNoIR_Protocol::checkServerInstallationOK( HANDLE handle ) -{ - /* Make sure we could open the device! */ - if (h == INVALID_HANDLE_VALUE) { - return false; - } - return true; -} - -// -// Return a name, if present the name from the Game, that is connected... -// -void FTNoIR_Protocol::getNameFromGame( char *dest ) -{ - sprintf_s(dest, 99, "Virtual PPJoy joystick"); - return; -} - -//////////////////////////////////////////////////////////////////////////////// -// Factory function that creates instances if the Protocol object. - -// Export both decorated and undecorated names. -// GetProtocol - Undecorated name, which can be easily used with GetProcAddress -// Win32 API function. -// _GetProtocol@0 - Common name decoration for __stdcall functions in C language. -#pragma comment(linker, "/export:GetProtocol=_GetProtocol@0") - -FTNOIR_PROTOCOL_BASE_EXPORT IProtocolPtr __stdcall GetProtocol() -{ - return new FTNoIR_Protocol; -} -- cgit v1.2.3