summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp29
-rw-r--r--FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h4
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp228
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h19
-rw-r--r--FTNoIR_Protocol_FT/FTTypes.h11
-rw-r--r--FTNoIR_Protocol_FTIR/FTIRTypes.h186
-rw-r--r--FTNoIR_Protocol_FTIR/FTNoIR_FTIRcontrols.ui289
-rw-r--r--FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp401
-rw-r--r--FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h140
-rw-r--r--FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc8.vcproj393
-rw-r--r--FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc9.vcproj385
-rw-r--r--FTNoIR_Protocol_FTIR/Protocol.qrc5
-rw-r--r--FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dialog.cpp192
-rw-r--r--FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dll.cpp56
-rw-r--r--FTNoIR_Protocol_FTIR/images/TrackIR.icobin15086 -> 0 bytes
15 files changed, 218 insertions, 2120 deletions
diff --git a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp
index 09911866..5a4663a1 100644
--- a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp
+++ b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp
@@ -3,7 +3,7 @@
* gamers from Holland, who don't like to pay much for *
* head-tracking. *
* *
-* Copyright (C) 2010-2011 Wim Vriend (Developing) *
+* Copyright (C) 2010-2013 Wim Vriend (Developing) *
* Ron Hendriks (Researching and Testing) *
* *
* Homepage *
@@ -38,6 +38,9 @@ FTNoIR_Protocol::FTNoIR_Protocol()
loadSettings();
ProgramName = "Microsoft FS2004";
+ blnConnectionActive = false;
+ hMainWindow = NULL;
+
prevPosX = 0.0f;
prevPosY = 0.0f;
prevPosZ = 0.0f;
@@ -118,6 +121,8 @@ float virtRotX;
float virtRotY;
float virtRotZ;
+PDWORD_PTR MsgResult = 0;
+
// qDebug() << "FSUIPCServer::run() says: started!";
virtRotX = -1.0f * headpose->pitch; // degrees
@@ -173,6 +178,14 @@ float virtRotZ;
if (result == FSUIPC_ERR_SENDMSG) {
FSUIPC_Close(); //timeout (1 second) so assume FS closed
}
+
+ if (!blnConnectionActive) {
+ blnConnectionActive = true;
+ if (hMainWindow != NULL) {
+ SendMessageTimeout( (HWND) hMainWindow, RegisterWindowMessageA(FT_PROGRAMID), 0, 0, 0, 2000, MsgResult);
+ }
+ }
+
}
}
@@ -191,17 +204,7 @@ bool FTNoIR_Protocol::checkServerInstallationOK( HANDLE handle )
{
qDebug() << "checkServerInstallationOK says: Starting Function";
- //
- // Load the DLL.
- //
- //FSUIPCLib.setFileName( LocationOfDLL );
- //if (FSUIPCLib.load() != true) {
- // qDebug() << "checkServerInstallationOK says: Error loading FSUIPC DLL";
- // return false;
- //}
- //else {
- // qDebug() << "checkServerInstallationOK says: FSUIPC DLL loaded.";
- //}
+ hMainWindow = handle;
return true;
}
@@ -211,7 +214,7 @@ bool FTNoIR_Protocol::checkServerInstallationOK( HANDLE handle )
//
void FTNoIR_Protocol::getNameFromGame( char *dest )
{
- sprintf_s(dest, 99, "FS2002/2004");
+ sprintf_s(dest, 99, "Microsoft FS2002/2004");
return;
}
diff --git a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h
index ec99035b..8503f6e7 100644
--- a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h
+++ b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h
@@ -43,6 +43,7 @@
#include <QFileDialog>
static const char* FSUIPC_FILENAME = "C:\\Program Files\\Microsoft Games\\Flight Simulator 9\\Modules\\FSUIPC.dll";
+static const char* FT_PROGRAMID = "FT_ProgramID"; // For message to FaceTrackNoIR main-window.
//
// Define the structures necessary for the FSUIPC_Write calls
@@ -75,6 +76,9 @@ private:
QString LocationOfDLL;
float prevPosX, prevPosY, prevPosZ, prevRotX, prevRotY, prevRotZ;
+ bool blnConnectionActive;
+ HANDLE hMainWindow; // Save the handle to FaceTrackNoIR main-window
+
static int scale2AnalogLimits( float x, float min_x, float max_x );
void loadSettings();
};
diff --git a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp
index 789b036f..159d3c31 100644
--- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp
+++ b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp
@@ -3,7 +3,7 @@
* gamers from Holland, who don't like to pay much for *
* head-tracking. *
* *
-* Copyright (C) 2010 Wim Vriend (Developing) *
+* Copyright (C) 2013 Wim Vriend (Developing) *
* Ron Hendriks (Researching and Testing) *
* *
* Homepage *
@@ -26,6 +26,7 @@
********************************************************************************/
/*
Modifications (last one on top):
+ 20130125 - WVR: Upgraded to FT2.0: now the FreeTrack protocol supports all TIR-enabled games.
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
@@ -35,6 +36,7 @@
Now it works direcly in shared memory!
*/
#include "ftnoir_protocol_ft.h"
+#include "csv.h"
/** constructor **/
FTNoIR_Protocol::FTNoIR_Protocol()
@@ -42,20 +44,48 @@ FTNoIR_Protocol::FTNoIR_Protocol()
comhandle = 0;
loadSettings();
ProgramName = "";
+ intGameID = 0;
+
+ dummyTrackIR = 0;
+ viewsStart = 0;
+ viewsStop = 0;
}
/** destructor **/
FTNoIR_Protocol::~FTNoIR_Protocol()
{
+
+ qDebug()<< "~FTNoIR_Protocol: Destructor started.";
+
//
- // Destroy the File-mapping
+ // Stop if started
//
- FTDestroyMapping();
+ if (viewsStop != NULL) {
+ qDebug()<< "~FTNoIR_Protocol: Stopping TIRViews.";
+ viewsStop();
+ FTIRViewsLib.unload();
+ }
+
+ //
+ // Kill the dummy TrackIR process.
+ //
+ qDebug() << "~FTNoIR_Protocol() about to kill TrackIR.exe process";
+ try {
+ if (dummyTrackIR) {
+ qDebug() << "FTServer::~FTServer() about to kill TrackIR.exe process";
+// dummyTrackIR->close();
+ dummyTrackIR->kill();
+ }
+ }
+ catch (...)
+ {
+ qDebug() << "~FTServer says: some error occurred";
+ }
//
- // Free the DLL's
+ // Destroy the File-mapping
//
- //////FTClientLib.unload();
+ FTDestroyMapping();
}
/** helper to Auto-destruct **/
@@ -70,6 +100,61 @@ void FTNoIR_Protocol::Initialize()
}
//
+// Read the game-data from CSV
+//
+bool FTNoIR_Protocol::getGameData( QString gameID ){
+QStringList gameLine;
+
+ qDebug() << "getGameData, ID = " << gameID;
+
+ //
+ // Open the supported games list, to get the Name.
+ //
+ QFile file(QCoreApplication::applicationDirPath() + "/Settings/FaceTrackNoIR Supported Games.csv");
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){
+ qDebug()<< "cannot read file!";
+ return false;
+ }
+ CSV csv(&file);
+ gameLine = csv.parseLine();
+
+ while (gameLine.count() > 2) {
+ qDebug() << "Column 0: " << gameLine.at(0); // No.
+ qDebug() << "Column 1: " << gameLine.at(1); // Game Name
+ qDebug() << "Column 2: " << gameLine.at(2); // Game Protocol
+ qDebug() << "Column 3: " << gameLine.at(3); // Supported since version
+ qDebug() << "Column 4: " << gameLine.at(4); // Verified
+ qDebug() << "Column 5: " << gameLine.at(5); // By
+ qDebug() << "Column 6: " << gameLine.at(6); // International ID
+ qDebug() << "Column 7: " << gameLine.at(7); // FaceTrackNoIR ID
+
+ //
+ // If the gameID was found, fill the shared memory
+ //
+ if (gameLine.count() > 6) {
+ if (gameLine.at(6).compare( gameID, Qt::CaseInsensitive ) == 0) {
+ if (pMemData != NULL) {
+ sprintf_s(pMemData->ProgramName, 99, gameLine.at(1).toAscii());
+ sprintf_s(pMemData->FTNVERSION, 9, gameLine.at(3).toAscii());
+ sprintf_s(pMemData->FTNID, 24, gameLine.at(7).toAscii());
+ }
+ file.close();
+ return true;
+ }
+ }
+
+ gameLine = csv.parseLine();
+ }
+
+ //
+ // If the gameID was NOT found, fill only the name "Unknown game connected"
+ //
+ sprintf_s(pMemData->ProgramName, 99, gameLine.at(1).toAscii());
+ file.close();
+ return true;
+}
+
+//
// Load the current Settings from the currently 'active' INI-file.
//
void FTNoIR_Protocol::loadSettings() {
@@ -151,9 +236,6 @@ PDWORD_PTR MsgResult = 0;
pMemData->data.Y3 = 0;
pMemData->data.Y4 = 0;
- //qDebug() << "FTServer says: pMemData.DataID =" << pMemData->data.DataID;
- //qDebug() << "FTServer says: ProgramName =" << pMemData->ProgramName;
-
//
// Check if the handle that was sent to the Game, was changed (on x64, this will be done by the ED-API)
// If the "Report Program Name" command arrives (which is a '1', for now), raise the event from here!
@@ -166,6 +248,63 @@ PDWORD_PTR MsgResult = 0;
}
}
+ //
+ // The game-ID was changed?
+ //
+ QString gameID = QString(pMemData->GameID);
+// QString gameID = QString("2304");
+
+ qDebug() << "sendHeadposeToGame: gameID = " << gameID;
+ if (gameID.length() > 0) {
+ if ( gameID.toInt() != intGameID ) {
+ if (getGameData( gameID ) ) {
+ SendMessageTimeout( (HWND) hMainWindow, RegisterWindowMessageA(FT_PROGRAMID), 0, 0, 0, 2000, MsgResult);
+
+ //
+ // Check if TIRViews or dummy TrackIR.exe is required for this game
+ //
+ QString ftnID = QString(pMemData->FTNID);
+ if (ftnID.length() >= 22) {
+ if (ftnID.at(20) != '0') {
+ FTIRViewsLib.setFileName(QCoreApplication::applicationDirPath() + "/TIRViews.dll");
+ FTIRViewsLib.load();
+
+ viewsStart = (importTIRViewsStart) FTIRViewsLib.resolve("TIRViewsStart");
+ if (viewsStart == NULL) {
+ qDebug() << "FTServer::run() says: TIRViewsStart function not found in DLL!";
+ }
+ else {
+ qDebug() << "FTServer::run() says: TIRViewsStart executed!";
+ viewsStart();
+ }
+
+ //
+ // Load the Stop function from TIRViews.dll. Call it when terminating the thread.
+ //
+ viewsStop = (importTIRViewsStop) FTIRViewsLib.resolve("TIRViewsStop");
+ if (viewsStop == NULL) {
+ qDebug() << "FTServer::run() says: TIRViewsStop function not found in DLL!";
+ }
+ }
+ if (ftnID.at(21) != '0') {
+ QString program = QCoreApplication::applicationDirPath() + "/TrackIR.exe";
+ dummyTrackIR = new QProcess();
+ dummyTrackIR->start(program);
+
+ qDebug() << "FTServer::run() says: TrackIR.exe executed!";
+ }
+ }
+ }
+ intGameID = gameID.toInt();
+ }
+ }
+ else {
+ intGameID = 0;
+ pMemData->ProgramName[0] = NULL;
+ pMemData->FTNID[0] = NULL;
+ pMemData->FTNVERSION[0] = NULL;
+ }
+
ReleaseMutex(hFTMutex);
}
@@ -173,60 +312,32 @@ PDWORD_PTR MsgResult = 0;
}
//
-// Check if the Client DLL exists and load it (to test it), if so.
+// Set the Path variables and load the memory-mapping.
+// Simplified function: No need to check if the DLL's actually exist. The are installed by the installer.
+// If they are absent, something went terribly wrong anyway...
+//
// Returns 'true' if all seems OK.
//
+//
bool FTNoIR_Protocol::checkServerInstallationOK( HANDLE handle )
{
- QSettings settings("Freetrack", "FreetrackClient"); // Registry settings (in HK_USER)
- QString aLocation; // Location of Client DLL
- QString aFileName; // File Path and Name
-
- importProvider provider;
- char *pProvider;
+ QSettings settings("Freetrack", "FreetrackClient"); // Registry settings (in HK_USER)
+ QSettings settingsTIR("NaturalPoint", "NATURALPOINT\\NPClient Location"); // Registry settings (in HK_USER)
+ QString aLocation; // Location of Client DLL
- qDebug() << "FTCheckClientDLL says: Starting Function";
+ qDebug() << "checkServerInstallationOK says: Starting Function";
try {
//
- // Load the FreeTrackClient.dll from the current path of FaceTrackNoIR, because there is no
- // guarantee FreeTrack is also installed.
- //
- // Write this path in the registry (under FreeTrack/FreeTrackClient, for the game(s).
+ // Write the path in the registry (for FreeTrack and FreeTrack20), for the game(s).
//
aLocation = QCoreApplication::applicationDirPath() + "/";
- qDebug() << "FTCheckClientDLL says: Location of DLL =" << aLocation;
+ settings.setValue( "Path" , aLocation );
+ settingsTIR.setValue( "Path" , aLocation );
+
+
- //
- // Append a '/' to the Path and then the name of the dll.
- //
- aFileName = aLocation;
- aFileName.append(FT_CLIENT_FILENAME);
- qDebug() << "FTCheckClientDLL says: Full path of DLL =" << aFileName;
-
- if ( QFile::exists( aFileName ) ) {
- qDebug() << "FTCheckClientDLL says: DLL exists!";
- //
- // Write the path to the key in the Registry, so the game(s) can find it too...
- //
- settings.setValue( "Path" , aLocation );
-
- //
- // Load the DLL and map to the functions in it.
- //
- ////////FTClientLib.setFileName(aFileName);
- ////////FTClientLib.load();
- ////////provider = (importProvider) FTClientLib.resolve("FTProvider");
- ////////if (provider) {
- //////// pProvider = provider();
- //////// qDebug() << "FTCheckClientDLL says: Provider =" << pProvider;
- ////////}
- }
- else {
- QMessageBox::information(0, "FaceTrackNoIR error", QString("Necessary file (FreeTrackClient.dll) was NOT found!\n"));
- return false;
- }
} catch(...) {
settings.~QSettings();
}
@@ -234,12 +345,14 @@ bool FTNoIR_Protocol::checkServerInstallationOK( HANDLE handle )
}
//
-// Create a memory-mapping to the TrackIR data.
+// Create a memory-mapping to the FreeTrack data.
// It contains the tracking data, a handle to the main-window and the program-name of the Game!
//
//
bool FTNoIR_Protocol::FTCreateMapping( HANDLE handle )
{
+bool bFirst = false;
+
qDebug() << "FTCreateMapping says: Starting Function";
//
@@ -249,14 +362,18 @@ bool FTNoIR_Protocol::FTCreateMapping( HANDLE handle )
// If one already exists: close it.
//
hFTMemMap = CreateFileMappingA( INVALID_HANDLE_VALUE , 00 , PAGE_READWRITE , 0 ,
- sizeof( TFreeTrackData ) + sizeof( HANDLE ) + 100,
+// sizeof( TFreeTrackData ) + sizeof( HANDLE ) + 100,
+ sizeof( FTMemMap ),
(LPCSTR) FT_MM_DATA );
if ( hFTMemMap != 0 ) {
+ bFirst = true;
qDebug() << "FTCreateMapping says: FileMapping Created!" << hFTMemMap;
}
if ( ( hFTMemMap != 0 ) && ( (long) GetLastError == ERROR_ALREADY_EXISTS ) ) {
+ bFirst = false;
+ qDebug() << "FTCreateMapping says: FileMapping already exists!" << hFTMemMap;
CloseHandle( hFTMemMap );
hFTMemMap = 0;
}
@@ -267,8 +384,13 @@ bool FTNoIR_Protocol::FTCreateMapping( HANDLE handle )
hFTMemMap = OpenFileMappingA( FILE_MAP_ALL_ACCESS , false , (LPCSTR) FT_MM_DATA );
if ( ( hFTMemMap != 0 ) ) {
qDebug() << "FTCreateMapping says: FileMapping Opened:" << hFTMemMap;
- pMemData = (FTMemMap *) MapViewOfFile(hFTMemMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(TFreeTrackData) + sizeof(hFTMemMap) + 100);
+ pMemData = (FTMemMap *) MapViewOfFile(hFTMemMap, FILE_MAP_ALL_ACCESS, 0, 0,
+// sizeof(TFreeTrackData) + sizeof(hFTMemMap) + 100);
+ sizeof(FTMemMap));
if (pMemData != NULL) {
+ if (bFirst) {
+ memset(pMemData, 0, sizeof(FTMemMap)); // Write zero's, if first...
+ }
pMemData->handle = handle; // The game uses the handle, to send a message that the Program-Name was set!
hMainWindow = handle;
}
diff --git a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h
index bd461b1e..12a20ee8 100644
--- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h
+++ b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h
@@ -40,7 +40,9 @@
#include "Windows.h"
//#include "math.h"
-typedef char *(WINAPI *importProvider)(void);
+//typedef char *(WINAPI *importProvider)(void);
+typedef void (WINAPI *importTIRViewsStart)(void);
+typedef void (WINAPI *importTIRViewsStop)(void);
class FTNoIR_Protocol : public IProtocol
{
@@ -59,6 +61,9 @@ private:
bool FTCreateMapping(HANDLE handle);
void FTDestroyMapping();
+ importTIRViewsStart viewsStart; // Functions inside TIRViews.dll
+ importTIRViewsStop viewsStop;
+
HANDLE hFTMemMap;
FTMemMap *pMemData;
HANDLE hFTMutex;
@@ -68,9 +73,13 @@ private:
// Private properties
QString ProgramName;
- QLibrary FTClientLib;
+// QLibrary FTClientLib;
+ QLibrary FTIRViewsLib;
+ QProcess *dummyTrackIR;
+ int intGameID;
float getRadsFromDegrees ( float degrees ) { return (degrees * 0.017453f); }
+ bool getGameData( QString gameID );
void loadSettings();
};
@@ -118,9 +127,9 @@ public:
FTNoIR_ProtocolDll();
~FTNoIR_ProtocolDll();
- void getFullName(QString *strToBeFilled) { *strToBeFilled = QString("FreeTrack"); };
- void getShortName(QString *strToBeFilled) { *strToBeFilled = QString("FreeTrack"); };
- void getDescription(QString *strToBeFilled) { *strToBeFilled = QString("FreeTrack protocol"); };
+ void getFullName(QString *strToBeFilled) { *strToBeFilled = QString("FreeTrack 2.0"); };
+ void getShortName(QString *strToBeFilled) { *strToBeFilled = QString("FreeTrack 2.0"); };
+ void getDescription(QString *strToBeFilled) { *strToBeFilled = QString("Enhanced FreeTrack protocol"); };
void getIcon(QIcon *icon) { *icon = QIcon(":/images/Freetrack.ico"); };
};
diff --git a/FTNoIR_Protocol_FT/FTTypes.h b/FTNoIR_Protocol_FT/FTTypes.h
index c83ce90d..ece410ff 100644
--- a/FTNoIR_Protocol_FT/FTTypes.h
+++ b/FTNoIR_Protocol_FT/FTTypes.h
@@ -4,7 +4,7 @@
* It was loosely translated from FTTypes.pas *
* which was created by the FreeTrack-team. *
* *
-* Copyright (C) 2010 Wim Vriend (Developing) *
+* Copyright (C) 2013 Wim Vriend (Developing) *
* Ron Hendriks (Testing and Research) *
* *
* Homepage <http://www.free-track.net> *
@@ -25,6 +25,10 @@
* We would like to extend our grattitude to the creators of SweetSpotter, *
* which has become the basis of this program: "Great work guys!" *
********************************************************************************/
+/*
+ Modifications (last one on top):
+ 20130125 - WVR: Upgraded to FT2.0: now the FreeTrack protocol supports all TIR-enabled games. The memory-mapping was expanded for this purpose.
+*/
#pragma once
#ifndef INCLUDED_FTTYPES_H
#define INCLUDED_FTTYPES_H
@@ -81,7 +85,10 @@ struct FTMemMap {
#else
HANDLE handle;
#endif
- char ProgramName[100];
+ char ProgramName[100]; // The name of the game
+ char GameID[10]; // The international game-ID
+ char FTNID[30]; // The FaceTrackNoIR game-ID
+ char FTNVERSION[10]; // The version of FaceTrackNoIR, in which the game was first supported
};
typedef FTMemMap * PFTMemMap;
diff --git a/FTNoIR_Protocol_FTIR/FTIRTypes.h b/FTNoIR_Protocol_FTIR/FTIRTypes.h
deleted file mode 100644
index fcf2d458..00000000
--- a/FTNoIR_Protocol_FTIR/FTIRTypes.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/********************************************************************************
-* FTIRTypes FTIRTypes contains the specific type definitions for the *
-* Fake TrackIR protocol. *
-* It was modelled after FTTypes.cpp. *
-* *
-* Copyright (C) 2010 Wim Vriend (Developing) *
-* Ron Hendriks (Testing and Research) *
-* *
-* 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 <http://www.gnu.org/licenses/>. *
-* *
-********************************************************************************/
-#pragma once
-#ifndef INCLUDED_FTIRTYPES_H
-#define INCLUDED_FTIRTYPES_H
-
-#include "Windows.h"
-#include <tchar.h>
-#include <stdio.h>
-
-//
-// Versioning hasn't been worked out yet...
-//
-// The following is the previous spec definition of versioning info -- I can probably do
-// something very similar to this -- will keep you posted.
-//
-// request version information using 2 messages, they cannot be expected to arrive in a specific order - so always parse using the High byte
-// the messages have a NPCONTROL byte in the first parameter, and the second parameter has packed bytes.
-// Message 1) (first parameter)NPCONTROL : (second parameter) (High Byte)NPVERSIONMAJOR (Low Byte) major version number data
-// Message 2) (first parameter)NPCONTROL : (second parameter) (High Byte)NPVERSIONMINOR (Low Byte) minor version number data
-
-#define NPQUERYVERSION 1040
-
-// CONTROL DATA SUBFIELDS
-#define NPVERSIONMAJOR 1
-#define NPVERSIONMINOR 2
-
-// DATA FIELDS
-#define NPControl 8 // indicates a control data field
- // the second parameter of a message bearing control data information contains a packed data format.
- // The High byte indicates what the data is, and the Low byte contains the actual data
-// roll, pitch, yaw
-#define NPRoll 1 // +/- 16383 (representing +/- 180) [data = input - 16383]
-#define NPPitch 2 // +/- 16383 (representing +/- 180) [data = input - 16383]
-#define NPYaw 4 // +/- 16383 (representing +/- 180) [data = input - 16383]
-
-// x, y, z - remaining 6dof coordinates
-#define NPX 16 // +/- 16383 [data = input - 16383]
-#define NPY 32 // +/- 16383 [data = input - 16383]
-#define NPZ 64 // +/- 16383 [data = input - 16383]
-
-#define NP_AXIS_MIN -16383
-#define NP_AXIS_MAX 16383
-
-// raw object position from imager
-#define NPRawX 128 // 0..25600 (actual value is multiplied x 100 to pass two decimal places of precision) [data = input / 100]
-#define NPRawY 256 // 0..25600 (actual value is multiplied x 100 to pass two decimal places of precision) [data = input / 100]
-#define NPRawZ 512 // 0..25600 (actual value is multiplied x 100 to pass two decimal places of precision) [data = input / 100]
-
-// x, y, z deltas from raw imager position
-#define NPDeltaX 1024 // +/- 2560 (actual value is multiplied x 10 to pass two decimal places of precision) [data = (input / 10) - 256]
-#define NPDeltaY 2048 // +/- 2560 (actual value is multiplied x 10 to pass two decimal places of precision) [data = (input / 10) - 256]
-#define NPDeltaZ 4096 // +/- 2560 (actual value is multiplied x 10 to pass two decimal places of precision) [data = (input / 10) - 256]
-
-// raw object position from imager
-#define NPSmoothX 8192 // 0..32766 (actual value is multiplied x 10 to pass one decimal place of precision) [data = input / 10]
-#define NPSmoothY 16384 // 0..32766 (actual value is multiplied x 10 to pass one decimal place of precision) [data = input / 10]
-#define NPSmoothZ 32768 // 0..32766 (actual value is multiplied x 10 to pass one decimal place of precision) [data = input / 10]
-
-// NPESULT values are returned from the Game Client API functions.
-//
-typedef enum tagNPResult
-{
- NP_OK = 0,
- NP_ERR_DEVICE_NOT_PRESENT,
- NP_ERR_UNSUPPORTED_OS,
- NP_ERR_INVALID_ARG,
- NP_ERR_DLL_NOT_FOUND,
- NP_ERR_NO_DATA,
- NP_ERR_INTERNAL_DATA
-} NPRESULT;
-
- static const char* FTIR_CLIENT_FILENAME = "NPClient.dll";
- static const char* FTIR_VIEWS_FILENAME = "TIRViews.dll";
- static const char* FTIR_MM_DATA = "{0F98177E-0E5C-4F86-8837-229D19B1701D}";
- static const char* FTIR_MUTEX = "FT_TIR_Mutex";
- static const char* FTIR_REGISTER_PROGRAMHANDLE = "FT_Register_Program_Handle";
- static const char* FTIR_UNREGISTER_PROGRAMHANDLE = "FT_UnRegister_Program_Handle";
-
- static const char* FTIR_SIG1 = "precise head tracking\n put your head into the game\n now go look around\n\n Copyright EyeControl Technologies\0\0";
- static const char* FTIR_SIG2 = "hardware camera\n software processing data\n track user movement\n\n Copyright EyeControl Technologies\0\0";
-
-typedef struct tagTrackIRData
-{
- unsigned short wNPStatus;
- unsigned short wPFrameSignature;
- unsigned long dwNPIOData;
-
- float fNPRoll;
- float fNPPitch;
- float fNPYaw;
- float fNPX;
- float fNPY;
- float fNPZ;
- float fNPRawX;
- float fNPRawY;
- float fNPRawZ;
- float fNPDeltaX;
- float fNPDeltaY;
- float fNPDeltaZ;
- float fNPSmoothX;
- float fNPSmoothY;
- float fNPSmoothZ;
-} TRACKIRDATA, *LPTRACKIRDATA;
-
-struct FTIRMemMap {
- // Emulators can check this
- int iRecordSize;
- TRACKIRDATA data;
- int Version;
- // Emulators should read these
- HANDLE RegisteredHandle;
- bool Transmission, Cursor;
- long int RequestFormat;
- long int ProgramProfileID;
- // Read/Write
- int LastError;
- int Param[16];
- unsigned short ClientNotify1, ClientNotify2;
- char Signature[400];
-};
-typedef FTIRMemMap * PFTIRMemMap;
-
-//
-// Typedef for pointer to the notify callback function that is implemented within
-// the client -- this function receives head tester reports from the game client API
-//
-typedef NPRESULT (__stdcall *PF_NOTIFYCALLBACK)( unsigned short, unsigned short );
-//
-//// Typedefs for game client API functions (useful for declaring pointers to these
-//// functions within the client for use during GetProcAddress() ops)
-////
-//typedef NPRESULT (__stdcall *PF_NP_REGISTERWINDOWHANDLE)( HWND );
-//typedef NPRESULT (__stdcall *PF_NP_UNREGISTERWINDOWHANDLE)( void );
-//typedef NPRESULT (__stdcall *PF_NP_REGISTERPROGRAMPROFILEID)( unsigned short );
-//typedef NPRESULT (__stdcall *PF_NP_QUERYVERSION)( unsigned short* );
-//typedef NPRESULT (__stdcall *PF_NP_REQUESTDATA)( unsigned short );
-typedef NPRESULT (__stdcall *PF_NP_GETDATA)( LPTRACKIRDATA );
-//typedef NPRESULT (__stdcall *PF_NP_REGISTERNOTIFY)( PF_NOTIFYCALLBACK );
-//typedef NPRESULT (__stdcall *PF_NP_UNREGISTERNOTIFY)( void );
-//typedef NPRESULT (__stdcall *PF_NP_STARTCURSOR)( void );
-//typedef NPRESULT (__stdcall *PF_NP_STOPCURSOR)( void );
-//typedef NPRESULT (__stdcall *PF_NP_STARTDATATRANSMISSION)( void );
-//typedef NPRESULT (__stdcall *PF_NP_STOPDATATRANSMISSION)( void );
-
-//// Function Prototypes ///////////////////////////////////////////////
-//
-// Functions exported from game client API DLL ( note __stdcall calling convention
-// is used for ease of interface to clients of differing implementations including
-// C, C++, Pascal (Delphi) and VB. )
-//
-//NPRESULT __stdcall NP_RegisterWindowHandle( HWND hWnd );
-//NPRESULT __stdcall NP_RegisterWindowHandle( HWND );
-//NPRESULT __stdcall NP_UnregisterWindowHandle( void );
-//NPRESULT __stdcall NP_RegisterProgramProfileID( unsigned short wPPID );
-//NPRESULT __stdcall NP_QueryVersion( unsigned short* pwVersion );
-//NPRESULT __stdcall NP_RequestData( unsigned short wDataReq );
-//NPRESULT __stdcall NP_GetData( LPTRACKIRDATA pTID );
-//NPRESULT __stdcall NP_RegisterNotify( PF_NOTIFYCALLBACK pfNotify );
-//NPRESULT __stdcall NP_UnregisterNotify( void );
-//NPRESULT __stdcall NP_StartCursor( void );
-//NPRESULT __stdcall NP_StopCursor( void );
-//NPRESULT __stdcall NP_StartDataTransmission( void );
-//NPRESULT __stdcall NP_StopDataTransmission( void );
-
-#endif//INCLUDED_FTIRTYPES_H
diff --git a/FTNoIR_Protocol_FTIR/FTNoIR_FTIRcontrols.ui b/FTNoIR_Protocol_FTIR/FTNoIR_FTIRcontrols.ui
deleted file mode 100644
index b7cbe25f..00000000
--- a/FTNoIR_Protocol_FTIR/FTNoIR_FTIRcontrols.ui
+++ /dev/null
@@ -1,289 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>UICFTIRControls</class>
- <widget class="QWidget" name="UICFTIRControls">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>588</width>
- <height>216</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>FTIR settings FaceTrackNoIR</string>
- </property>
- <property name="windowIcon">
- <iconset>
- <normaloff>images/FaceTrackNoIR.ico</normaloff>images/FaceTrackNoIR.ico</iconset>
- </property>
- <property name="layoutDirection">
- <enum>Qt::LeftToRight</enum>
- </property>
- <property name="autoFillBackground">
- <bool>false</bool>
- </property>
- <layout class="QVBoxLayout" name="_vertical_layout">
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>70</height>
- </size>
- </property>
- <property name="title">
- <string>TIRViews</string>
- </property>
- <widget class="QCheckBox" name="chkTIRViews">
- <property name="geometry">
- <rect>
- <x>70</x>
- <y>20</y>
- <width>88</width>
- <height>17</height>
- </rect>
- </property>
- <property name="layoutDirection">
- <enum>Qt::RightToLeft</enum>
- </property>
- <property name="text">
- <string>Use TIRViews</string>
- </property>
- </widget>
- <widget class="QLabel" name="label_4">
- <property name="geometry">
- <rect>
- <x>180</x>
- <y>10</y>
- <width>301</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>TIRViews is only required for some older games (like CFS3).</string>
- </property>
- </widget>
- <widget class="QLabel" name="label_5">
- <property name="geometry">
- <rect>
- <x>180</x>
- <y>30</y>
- <width>421</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>For it to work, TIRViews.dll must be placed in the FaceTrackNoIR program folder.</string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QLabel" name="label_6">
- <property name="geometry">
- <rect>
- <x>180</x>
- <y>50</y>
- <width>251</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>If the checkbox is disabled, the DLL was not found.</string>
- </property>
- </widget>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_2">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>70</height>
- </size>
- </property>
- <property name="title">
- <string>TrackIR.exe</string>
- </property>
- <widget class="QCheckBox" name="chkStartDummy">
- <property name="geometry">
- <rect>
- <x>13</x>
- <y>20</y>
- <width>145</width>
- <height>17</height>
- </rect>
- </property>
- <property name="layoutDirection">
- <enum>Qt::RightToLeft</enum>
- </property>
- <property name="text">
- <string>Start dummy TrackIR.exe</string>
- </property>
- </widget>
- <widget class="QLabel" name="label_2">
- <property name="geometry">
- <rect>
- <x>180</x>
- <y>10</y>
- <width>351</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>Some programs check, to see if a process called TrackIR.exe is running,</string>
- </property>
- </widget>
- <widget class="QLabel" name="label">
- <property name="geometry">
- <rect>
- <x>180</x>
- <y>30</y>
- <width>261</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>before enabling head-tracking (EZCA is one of them).</string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QLabel" name="label_3">
- <property name="geometry">
- <rect>
- <x>180</x>
- <y>50</y>
- <width>231</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>Check the checkbox, to overcome this problem.</string>
- </property>
- </widget>
- <zorder>chkStartDummy</zorder>
- <zorder>label_2</zorder>
- <zorder>label</zorder>
- <zorder>label_3</zorder>
- <zorder>groupBox</zorder>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QVBoxLayout" name="verticalLayout"/>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <spacer name="horizontalSpacer_2">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <property name="sizeConstraint">
- <enum>QLayout::SetDefaultConstraint</enum>
- </property>
- <item>
- <widget class="QPushButton" name="btnOK">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>100</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>100</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="text">
- <string>OK</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="btnCancel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="minimumSize">
- <size>
- <width>100</width>
- <height>0</height>
- </size>
- </property>
- <property name="maximumSize">
- <size>
- <width>100</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="text">
- <string>Cancel</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Fixed</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>10</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
- <slots>
- <slot>startEngineClicked()</slot>
- <slot>stopEngineClicked()</slot>
- <slot>cameraSettingsClicked()</slot>
- </slots>
-</ui>
diff --git a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp
deleted file mode 100644
index ab063b04..00000000
--- a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp
+++ /dev/null
@@ -1,401 +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 <http://www.gnu.org/licenses/>. *
-* *
-* FTIRServer FTIRServer is the Class, that communicates headpose-data *
-* to games, using the NPClient.dll. *
-********************************************************************************/
-/*
- 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_ftir.h"
-
-/** constructor **/
-FTNoIR_Protocol::FTNoIR_Protocol()
-{
- loadSettings();
- ProgramName = "";
- dummyTrackIR = 0;
- viewsStart = 0;
- viewsStop = 0;
-}
-
-/** destructor **/
-FTNoIR_Protocol::~FTNoIR_Protocol()
-{
- //
- // Destroy the File-mapping
- //
- FTIRDestroyMapping();
-
- //
- // Free the DLL's
- //
- FTIRClientLib.unload();
- if (viewsStop != NULL) {
- viewsStop();
- FTIRViewsLib.unload();
- }
-
- //
- // Kill the dummy TrackIR process.
- //
-// qDebug() << "FTIRServer::~FTIRServer() about to kill TrackIR.exe process";
- try {
- if (dummyTrackIR) {
- qDebug() << "FTIRServer::~FTIRServer() about to kill TrackIR.exe process";
-// dummyTrackIR->close();
- dummyTrackIR->kill();
- }
- }
- catch (...)
- {
- qDebug() << "~FTIRServer says: some error occurred";
- }
-}
-
-/** helper to Auto-destruct **/
-void FTNoIR_Protocol::Release()
-{
- delete this;
-}
-
-void FTNoIR_Protocol::Initialize()
-{
- return;
-}
-
-//
-// Scale the measured value to the Joystick values
-//
-float FTNoIR_Protocol::scale2AnalogLimits( float x, float min_x, float max_x ) {
-double y;
-double local_x;
-
- local_x = x;
- if (local_x > max_x) {
- local_x = max_x;
- }
- if (local_x < min_x) {
- local_x = min_x;
- }
- y = ( NP_AXIS_MAX * local_x ) / max_x;
-
- return (float) y;
-}
-
-//
-// Load the current Settings from the currently 'active' INI-file.
-//
-void FTNoIR_Protocol::loadSettings() {
- QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
-
- QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
- QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
-
- iniFile.beginGroup ( "FTIR" );
- useTIRViews = iniFile.value ( "useTIRViews", 0 ).toBool();
- useDummyExe = iniFile.value ( "useDummyExe", 1 ).toBool();
- iniFile.endGroup ();
-}
-
-//
-// Update Headpose in Game.
-//
-void FTNoIR_Protocol::sendHeadposeToGame( THeadPoseData *headpose, THeadPoseData *rawheadpose ) {
-float virtPosX;
-float virtPosY;
-float virtPosZ;
-
-float virtRotX;
-float virtRotY;
-float virtRotZ;
-
-TRACKIRDATA localdata;
-
- //
- // Copy the Raw measurements directly to the client.
- //
- virtRotX = scale2AnalogLimits (headpose->pitch, -180.0f, 180.0f);
- virtRotY = scale2AnalogLimits (headpose->yaw, -180.0f, 180.0f);
- virtRotZ = scale2AnalogLimits (headpose->roll, -180.0f, 180.0f);
-
- virtPosX = scale2AnalogLimits (headpose->x * 10.0f, -500.0f, 500.0f);
- virtPosY = scale2AnalogLimits (headpose->y * 10.0f, -500.0f, 500.0f);
- virtPosZ = scale2AnalogLimits (headpose->z * 10.0f, -500.0f, 500.0f);
-
- //
- // Check if the pointer is OK and wait for the Mutex.
- // Use the setposition in the (special) DLL, to write the headpose-data.
- //
-// qDebug() << "FTIRCreateMapping says: sendHeadpose";
- if ( (pMemData != NULL) && (WaitForSingleObject(hFTIRMutex, 100) == WAIT_OBJECT_0) ) {
-// qDebug() << "FTIRCreateMapping says: Calling setposition" << setdata;
-
- //localdata.fNPX = virtPosX;
- //localdata.fNPY = virtPosY;
- //localdata.fNPZ = virtPosZ;
- //localdata.fNPRoll = virtRotZ;
- //localdata.fNPPitch = virtRotX;
- //localdata.fNPYaw = virtRotY;
- //localdata.wPFrameSignature = localdata.wPFrameSignature + 1;
-
- //setdata(&localdata);
- //
-// setposition ( virtPosX, virtPosY, virtPosZ, virtRotZ, virtRotX, virtRotY );
- pMemData->data.fNPX = virtPosX;
- pMemData->data.fNPY = virtPosY;
- pMemData->data.fNPZ = virtPosZ;
- pMemData->data.fNPRoll = virtRotZ;
- pMemData->data.fNPPitch = virtRotX;
- pMemData->data.fNPYaw = virtRotY;
- pMemData->data.wPFrameSignature +=1;
- if ((pMemData->data.wPFrameSignature < 0) || (pMemData->data.wPFrameSignature > 1000)){
- pMemData->data.wPFrameSignature = 0;
- }
- ReleaseMutex(hFTIRMutex);
- }
-}
-
-//
-// Check if the Client DLL exists and load it (to test it), if so.
-// Returns 'true' if all seems OK.
-//
-bool FTNoIR_Protocol::checkServerInstallationOK( HANDLE handle )
-{
- QSettings settings("NaturalPoint", "NATURALPOINT\\NPClient Location"); // Registry settings (in HK_USER)
- QString aLocation; // Location of Client DLL
- QString aFileName; // File Path and Name
-
- //importProvider provider;
- //char *pProvider;
-
- qDebug() << "FTCheckClientDLL says: Starting Function";
-
- try {
-
- //
- // Load the NPClient.dll from the current path of FaceTrackNoIR, because there is no
- // guarantee TrackIR or GlovePIE is also installed.
- //
- // Write this path in the registry (under NaturalPoint/NATURALPOINT, for the game(s).
- //
- aLocation = QCoreApplication::applicationDirPath() + "/";
- qDebug() << "FTCheckClientDLL says: Location of DLL =" << aLocation;
-
- //
- // Append a '/' to the Path and then the name of the dll.
- //
- aFileName = aLocation;
- aFileName.append(FTIR_CLIENT_FILENAME);
-// aFileName.append("TIR5.dll");
- qDebug() << "FTCheckClientDLL says: Full path of DLL =" << aFileName;
-
- if ( QFile::exists( aFileName ) ) {
- qDebug() << "FTCheckClientDLL says: DLL exists!";
- //
- // Write the path to the key in the Registry, so the game(s) can find it too...
- //
- settings.setValue( "Path" , aLocation );
-
- //
- // Load the DLL and map to the functions in it.
- //
- FTIRClientLib.setFileName(aFileName);
- FTIRClientLib.load();
- }
- else {
- QMessageBox::information(0, "FaceTrackNoIR error", QString("Necessary file (NPClient.dll) was NOT found!\n"));
- return false;
- }
-
- //
- // Also load TIRViews.dll, to support some older games
- //
- if (useTIRViews) {
- aFileName = aLocation;
- aFileName.append(FTIR_VIEWS_FILENAME);
- FTIRViewsLib.setFileName(aFileName);
- FTIRViewsLib.load();
- }
-
- //
- // Start TrackIR.exe, also to support some older games and EZCA
- // Some TrackIR clients check if a process called TrackIR.exe is running.
- // This should do the trick
- //
- if (useDummyExe) {
- QString program = "TrackIR.exe";
- dummyTrackIR = new QProcess();
- dummyTrackIR->start(program);
- }
-
- } catch(...) {
- settings.~QSettings();
- }
-
- //
- // Create the File-mapping for Inter Process Communication
- //
- if (!FTIRCreateMapping( handle )){
- return false;
- }
-
- //
- // Find the functions in the DLL's
- //
- //// Get the setposition function from the DLL and use it!
- ////
- ////setposition = (importSetPosition) FTIRClientLib.resolve("SetPosition");
- ////if (setdata == NULL) {
- //// qDebug() << "FTIRServer::run() says: SetPosition function not found in DLL!";
- //// return false;
- ////}
- ////else {
- //// qDebug() << "FTIRCreateMapping says: Calling setposition" << setposition;
- //// setposition ( 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f );
- ////}
-
- //
- // Load the Start function from TIRViews.dll and call it, to start compatibility with older games
- //
- if (useTIRViews) {
- viewsStart = (importTIRViewsStart) FTIRViewsLib.resolve("TIRViewsStart");
- if (viewsStart == NULL) {
- qDebug() << "FTIRServer::run() says: TIRViewsStart function not found in DLL!";
- }
- else {
- qDebug() << "FTIRServer::run() says: TIRViewsStart executed!";
- viewsStart();
- }
-
- //
- // Load the Stop function from TIRViews.dll. Call it when terminating the thread.
- //
- viewsStop = (importTIRViewsStop) FTIRViewsLib.resolve("TIRViewsStop");
- if (viewsStop == NULL) {
- qDebug() << "FTIRServer::run() says: TIRViewsStop function not found in DLL!";
- }
- }
- return true;
-}
-
-//
-// Create a memory-mapping to the TrackIR data.
-// It contains the tracking data, a handle to the main-window and the program-name of the Game!
-//
-//
-bool FTNoIR_Protocol::FTIRCreateMapping( HANDLE handle )
-{
- qDebug() << "FTIRCreateMapping says: Starting Function";
-
- //
- // A FileMapping is used to create 'shared memory' between the FTIRServer and the FTClient.
- //
- // Try to create a FileMapping to the Shared Memory.
- // If one already exists: close it.
- //
- hFTIRMemMap = CreateFileMappingA( INVALID_HANDLE_VALUE , 00 , PAGE_READWRITE , 0 ,
- sizeof( FTIRMemMap ),
-// sizeof( TRACKIRDATA ) + sizeof( HANDLE ) + 100,
- (LPCSTR) FTIR_MM_DATA );
-
- if ( hFTIRMemMap != 0 ) {
- if ( (long) GetLastError == ERROR_ALREADY_EXISTS ) {
- qDebug() << "FTIRCreateMapping says: FileMapping already exists!" << hFTIRMemMap;
- CloseHandle( hFTIRMemMap );
- hFTIRMemMap = 0;
- }
- else {
- qDebug() << "FTIRCreateMapping says: FileMapping newly created!" << hFTIRMemMap;
- }
- }
-
- //
- // Open the FileMapping, Read/Write access
- //
- pMemData = 0;
- hFTIRMemMap = OpenFileMappingA( FILE_MAP_ALL_ACCESS , false , (LPCSTR) FTIR_MM_DATA );
- if ( ( hFTIRMemMap != 0 ) ) {
- qDebug() << "FTIRCreateMapping says: FileMapping opened: " << hFTIRMemMap;
-// pMemData = (FTIRMemMap *) MapViewOfFile(hFTIRMemMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(TRACKIRDATA) + sizeof(hFTIRMemMap) + 100);
- pMemData = (FTIRMemMap *) MapViewOfFile(hFTIRMemMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(FTIRMemMap));
- if (pMemData != NULL) {
- qDebug() << "FTIRCreateMapping says: View of File mapped: " << pMemData;
- pMemData->RegisteredHandle = handle; // The game uses the handle, to send a message that the Program-Name was set!
- }
- hFTIRMutex = CreateMutexA(NULL, false, FTIR_MUTEX);
- }
- else {
- QMessageBox::information(0, "FaceTrackNoIR error", QString("FTIRServer Error! \n"));
- return false;
- }
-
- return true;
-}
-
-//
-// Destory the FileMapping to the shared memory
-//
-void FTNoIR_Protocol::FTIRDestroyMapping()
-{
- if ( pMemData != NULL ) {
- UnmapViewOfFile ( pMemData );
- }
-
- if (hFTIRMutex != 0) {
- CloseHandle( hFTIRMutex );
- }
- hFTIRMutex = 0;
-
- if (hFTIRMemMap != 0) {
- CloseHandle( hFTIRMemMap );
- }
- hFTIRMemMap = 0;
-
-}
-
-//
-// Return a name, if present the name from the Game, that is connected...
-//
-void FTNoIR_Protocol::getNameFromGame( char *dest )
-{
- sprintf_s(dest, 99, "TIR compatible game");
- 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;
-}
diff --git a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h
deleted file mode 100644
index db50fdbc..00000000
--- a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/********************************************************************************
-* FaceTrackNoIR This program is a private project of 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 <http://www.gnu.org/licenses/>. *
-* *
-* FTIRServer FTIRServer is the Class, that communicates headpose-data *
-* to games, using the NPClient.dll. *
-********************************************************************************/
-#pragma once
-#ifndef INCLUDED_FTIRSERVER_H
-#define INCLUDED_FTIRSERVER_H
-
-#include "..\ftnoir_protocol_base\ftnoir_protocol_base.h"
-#include "ui_FTNoIR_FTIRcontrols.h"
-#include "FTIRTypes.h"
-#include <QMessageBox>
-#include <QSettings>
-#include <QLibrary>
-#include <QProcess>
-#include <QDebug>
-#include <QFile>
-#include "Windows.h"
-//#include "math.h"
-
-//typedef void (WINAPI *importSetPosition)(float, float, float, float, float, float);
-typedef int (WINAPI *importSetData)(TRACKIRDATA*);
-typedef void (WINAPI *importTIRViewsStart)(void);
-typedef void (WINAPI *importTIRViewsStop)(void);
-
-
-class FTNoIR_Protocol : public IProtocol
-{
-public:
- FTNoIR_Protocol();
- ~FTNoIR_Protocol();
-
- void Release();
- void Initialize();
-
- bool checkServerInstallationOK( HANDLE handle );
- void sendHeadposeToGame( THeadPoseData *headpose, THeadPoseData *rawheadpose );
- void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
-
-private:
- bool FTIRCreateMapping(HANDLE handle);
- void FTIRDestroyMapping();
-
-// importSetPosition setposition; // Function inside NPClient.dll (old style)
- importSetData setdata; // Function inside NPClient.dll
- importTIRViewsStart viewsStart; // Functions inside TIRViews.dll
- importTIRViewsStop viewsStop;
-
- HANDLE hFTIRMemMap;
- FTIRMemMap *pMemData;
- HANDLE hFTIRMutex;
-
- // Private properties
- QString ProgramName;
- QLibrary FTIRClientLib;
- QLibrary FTIRViewsLib;
- QProcess *dummyTrackIR;
- bool useTIRViews;
- bool useDummyExe;
-
- float scale2AnalogLimits( float x, float min_x, float max_x );
- void loadSettings();
-
-};
-
-// Widget that has controls for FTNoIR protocol client-settings.
-class FTIRControls: public QWidget, Ui::UICFTIRControls, public IProtocolDialog
-{
- Q_OBJECT
-public:
-
- explicit FTIRControls();
- virtual ~FTIRControls();
- void showEvent ( QShowEvent * event );
-
- void Release(); // Member functions which are accessible from outside the DLL
- void Initialize(QWidget *parent);
- void registerProtocol(IProtocol *protocol) {
- theProtocol = (FTNoIR_Protocol *) protocol; // Accept the pointer to the Protocol
- };
- void unRegisterProtocol() {
- theProtocol = NULL; // Reset the pointer
- };
-
-private:
- Ui::UICFTIRControls ui;
- void loadSettings();
- void save();
-
- /** helper **/
- bool settingsDirty;
- FTNoIR_Protocol *theProtocol;
-
-private slots:
- void doOK();
- void doCancel();
- void chkTIRViewsChanged() { settingsDirty = true; };
- void settingChanged() { settingsDirty = true; };
-};
-
-//*******************************************************************************************************
-// FaceTrackNoIR Protocol DLL. Functions used to get general info on the Protocol
-//*******************************************************************************************************
-class FTNoIR_ProtocolDll : public IProtocolDll
-{
-public:
- FTNoIR_ProtocolDll();
- ~FTNoIR_ProtocolDll();
-
- void getFullName(QString *strToBeFilled) { *strToBeFilled = QString("fake TrackIR"); };
- void getShortName(QString *strToBeFilled) { *strToBeFilled = QString("FTIR"); };
- void getDescription(QString *strToBeFilled) { *strToBeFilled = QString("TrackIR V4 protocol"); };
-
- void getIcon(QIcon *icon) { *icon = QIcon(":/images/TrackIR.ico"); };
-};
-
-#endif//INCLUDED_FTIRSERVER_H
-//END
diff --git a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc8.vcproj b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc8.vcproj
deleted file mode 100644
index ff086959..00000000
--- a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc8.vcproj
+++ /dev/null
@@ -1,393 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="FTNoIR_Protocol_FTIR"
- ProjectGUID="{BC5B8583-036A-4A9B-84AE-01158EE6F5A4}"
- RootNamespace="FTNoIR_Protocol_FTIR"
- Keyword="Qt4VSv1.0"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)/bin"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- EnableIntrinsicFunctions="true"
- FavorSizeOrSpeed="1"
- AdditionalIncludeDirectories=".\GeneratedFiles;&quot;$(QTDIR)\include&quot;;&quot;.\GeneratedFiles\$(ConfigurationName)&quot;;&quot;$(QTDIR)\include\qtmain&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;.\"
- PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
- RuntimeLibrary="2"
- FloatingPointModel="0"
- TreatWChar_tAsBuiltInType="false"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="qtmain.lib QtCore4.lib QtGui4.lib QtNetwork4.lib"
- OutputFile="$(OutDir)\$(ProjectName).dll"
- AdditionalLibraryDirectories="$(QTDIR)\lib"
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="1"
- EnableCOMDATFolding="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)/bin_dbg"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".\GeneratedFiles;&quot;$(QTDIR)\include&quot;;&quot;.\GeneratedFiles\$(ConfigurationName)&quot;;&quot;$(QTDIR)\include\qtmain&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;.\"
- PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
- RuntimeLibrary="3"
- TreatWChar_tAsBuiltInType="false"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="qtmaind.lib QtCored4.lib QtGuid4.lib QtNetworkd4.lib"
- OutputFile="$(OutDir)\$(ProjectName).dll"
- AdditionalLibraryDirectories="$(QTDIR)\lib"
- GenerateDebugInformation="true"
- SubSystem="2"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;cxx;c;def"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\ftnoir_Protocol_FTIR.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FTIR_dialog.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FTIR_dll.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\FTIRTypes.h"
- >
- </File>
- <File
- RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base.h"
- >
- </File>
- <File
- RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base_global.h"
- >
- </File>
- <File
- RelativePath=".\FTNoIR_Protocol_FTIR.h"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Moc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL -I&quot;.\GeneratedFiles\.&quot; -I&quot;$(QTDIR)\include\.&quot; -I&quot;.\GeneratedFiles\$(ConfigurationName)\.&quot; -I&quot;$(QTDIR)\include\qtmain\.&quot; -I&quot;$(QTDIR)\include\QtCore\.&quot; -I&quot;$(QTDIR)\include\QtNetwork\.&quot; -I&quot;$(QTDIR)\include\QtGui\.&quot; -I&quot;.\.&quot; &quot;.\FTNoIR_Protocol_FTIR.h&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;&#x0D;&#x0A;"
- AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
- Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Moc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; &quot;$(InputPath)&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL &quot;-I.\GeneratedFiles&quot; &quot;-I$(QTDIR)\include&quot; &quot;-I.\GeneratedFiles\$(ConfigurationName)\.&quot; &quot;-I$(QTDIR)\include\qtmain&quot; &quot;-I$(QTDIR)\include\QtCore&quot; &quot;-I$(QTDIR)\include\QtNetwork&quot; &quot;-I$(QTDIR)\include\QtGui&quot; &quot;-I.&quot;&#x0D;&#x0A;"
- AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
- Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Form Files"
- Filter="ui"
- UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"
- >
- <File
- RelativePath=".\FTNoIR_FTIRcontrols.ui"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Uic&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\uic.exe&quot; -o &quot;.\GeneratedFiles\ui_$(InputName).h&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- AdditionalDependencies="$(QTDIR)\bin\uic.exe"
- Outputs="&quot;.\GeneratedFiles\ui_$(InputName).h&quot;"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Uic&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\uic.exe&quot; -o &quot;.\GeneratedFiles\ui_$(InputName).h&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- AdditionalDependencies="$(QTDIR)\bin\uic.exe"
- Outputs="&quot;.\GeneratedFiles\ui_$(InputName).h&quot;"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="qrc;*"
- UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}"
- ParseFiles="false"
- >
- <File
- RelativePath=".\Protocol.qrc"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Rcc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\rcc.exe&quot; -name &quot;$(InputName)&quot; -no-compress &quot;$(InputPath)&quot; -o .\GeneratedFiles\qrc_$(InputName).cpp&#x0D;&#x0A;"
- AdditionalDependencies="$(InputPath);.\images\Freetrack.ico"
- Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Rcc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\rcc.exe&quot; -name &quot;$(InputName)&quot; -no-compress &quot;$(InputPath)&quot; -o .\GeneratedFiles\qrc_$(InputName).cpp&#x0D;&#x0A;"
- AdditionalDependencies="$(InputPath);.\images\Freetrack.ico"
- Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Generated Files"
- Filter="moc;h;cpp"
- UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\generatedfiles\qrc_Protocol.cpp"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="0"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="0"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\GeneratedFiles\ui_FTNoIR_FTIRcontrols.h"
- >
- </File>
- <Filter
- Name="Release"
- Filter="cpp;moc"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\GeneratedFiles\Release\moc_FTNoIR_Protocol_FTIR.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Debug"
- Filter="cpp;moc"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\GeneratedFiles\Debug\moc_FTNoIR_Protocol_FTIR.cpp"
- >
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- </Filter>
- </Filter>
- </Files>
- <Globals>
- <Global
- Name="lupdateOnBuild"
- Value="0"
- />
- <Global
- Name="MocDir"
- Value=".\GeneratedFiles\$(ConfigurationName)"
- />
- <Global
- Name="MocOptions"
- Value=""
- />
- <Global
- Name="QtVersion Win32"
- Value="qt-everywhere-opensource-src-4.6.2"
- />
- <Global
- Name="RccDir"
- Value=".\GeneratedFiles"
- />
- <Global
- Name="UicDir"
- Value=".\GeneratedFiles"
- />
- </Globals>
-</VisualStudioProject>
diff --git a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc9.vcproj b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc9.vcproj
deleted file mode 100644
index 085bb761..00000000
--- a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR_vc9.vcproj
+++ /dev/null
@@ -1,385 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="FTNoIR_Protocol_FTIR"
- ProjectGUID="{BC5B8583-036A-4A9B-84AE-01158EE6F5A4}"
- RootNamespace="FTNoIR_Protocol_FTIR"
- Keyword="Qt4VSv1.0"
- TargetFrameworkVersion="131072"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)/bin"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".\GeneratedFiles;&quot;$(QTDIR)\include&quot;;&quot;.\GeneratedFiles\$(ConfigurationName)&quot;;&quot;$(QTDIR)\include\qtmain&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;.\"
- PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
- RuntimeLibrary="2"
- TreatWChar_tAsBuiltInType="false"
- DebugInformationFormat="0"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="qtmain.lib QtCore4.lib QtGui4.lib QtNetwork4.lib"
- OutputFile="$(OutDir)\$(ProjectName).dll"
- AdditionalLibraryDirectories="$(QTDIR)\lib"
- GenerateDebugInformation="false"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)/bin_dbg"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=".\GeneratedFiles;&quot;$(QTDIR)\include&quot;;&quot;.\GeneratedFiles\$(ConfigurationName)&quot;;&quot;$(QTDIR)\include\qtmain&quot;;&quot;$(QTDIR)\include\QtCore&quot;;&quot;$(QTDIR)\include\QtNetwork&quot;;&quot;$(QTDIR)\include\QtGui&quot;;.\"
- PreprocessorDefinitions="UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_THREAD_SUPPORT;QT_CORE_LIB;FTNOIR_PROTOCOL_BASE_LIB;QT_DLL"
- RuntimeLibrary="3"
- TreatWChar_tAsBuiltInType="false"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="qtmaind.lib QtCored4.lib QtGuid4.lib QtNetworkd4.lib"
- OutputFile="$(OutDir)\$(ProjectName).dll"
- AdditionalLibraryDirectories="$(QTDIR)\lib"
- GenerateDebugInformation="true"
- SubSystem="2"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;cxx;c;def"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\ftnoir_Protocol_FTIR.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FTIR_dialog.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FTIR_dll.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\FTIRTypes.h"
- >
- </File>
- <File
- RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base.h"
- >
- </File>
- <File
- RelativePath="..\FTNoIR_Protocol_Base\ftnoir_Protocol_base_global.h"
- >
- </File>
- <File
- RelativePath=".\FTNoIR_Protocol_FTIR.h"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Moc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL -I&quot;.\GeneratedFiles\.&quot; -I&quot;$(QTDIR)\include\.&quot; -I&quot;.\GeneratedFiles\$(ConfigurationName)\.&quot; -I&quot;$(QTDIR)\include\qtmain\.&quot; -I&quot;$(QTDIR)\include\QtCore\.&quot; -I&quot;$(QTDIR)\include\QtNetwork\.&quot; -I&quot;$(QTDIR)\include\QtGui\.&quot; -I&quot;.\.&quot; &quot;.\FTNoIR_Protocol_FTIR.h&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;&#x0D;&#x0A;"
- AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
- Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Moc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\moc.exe&quot; &quot;$(InputPath)&quot; -o &quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot; -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_CORE_LIB -DFTNOIR_PROTOCOL_BASE_LIB -DQT_DLL -D_WINDLL &quot;-I.\GeneratedFiles&quot; &quot;-I$(QTDIR)\include&quot; &quot;-I.\GeneratedFiles\$(ConfigurationName)\.&quot; &quot;-I$(QTDIR)\include\qtmain&quot; &quot;-I$(QTDIR)\include\QtCore&quot; &quot;-I$(QTDIR)\include\QtNetwork&quot; &quot;-I$(QTDIR)\include\QtGui&quot; &quot;-I.&quot;&#x0D;&#x0A;"
- AdditionalDependencies="&quot;$(QTDIR)\bin\moc.exe&quot;;$(InputPath)"
- Outputs="&quot;.\GeneratedFiles\$(ConfigurationName)\moc_$(InputName).cpp&quot;"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Form Files"
- Filter="ui"
- UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"
- >
- <File
- RelativePath=".\FTNoIR_FTIRcontrols.ui"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Uic&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\uic.exe&quot; -o &quot;.\GeneratedFiles\ui_$(InputName).h&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- AdditionalDependencies="$(QTDIR)\bin\uic.exe"
- Outputs="&quot;.\GeneratedFiles\ui_$(InputName).h&quot;"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Uic&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\uic.exe&quot; -o &quot;.\GeneratedFiles\ui_$(InputName).h&quot; &quot;$(InputPath)&quot;&#x0D;&#x0A;"
- AdditionalDependencies="$(QTDIR)\bin\uic.exe"
- Outputs="&quot;.\GeneratedFiles\ui_$(InputName).h&quot;"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="qrc;*"
- UniqueIdentifier="{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}"
- ParseFiles="false"
- >
- <File
- RelativePath=".\Protocol.qrc"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Rcc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\rcc.exe&quot; -name &quot;$(InputName)&quot; -no-compress &quot;$(InputPath)&quot; -o .\GeneratedFiles\qrc_$(InputName).cpp&#x0D;&#x0A;"
- AdditionalDependencies="$(InputPath);.\images\Freetrack.ico"
- Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCustomBuildTool"
- Description="Rcc&apos;ing $(InputFileName)..."
- CommandLine="&quot;$(QTDIR)\bin\rcc.exe&quot; -name &quot;$(InputName)&quot; -no-compress &quot;$(InputPath)&quot; -o .\GeneratedFiles\qrc_$(InputName).cpp&#x0D;&#x0A;"
- AdditionalDependencies="$(InputPath);.\images\Freetrack.ico"
- Outputs=".\GeneratedFiles\qrc_$(InputName).cpp"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Generated Files"
- Filter="moc;h;cpp"
- UniqueIdentifier="{71ED8ED8-ACB9-4CE9-BBE1-E00B30144E11}"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\generatedfiles\qrc_Protocol.cpp"
- >
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="0"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="0"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\GeneratedFiles\ui_FTNoIR_FTIRcontrols.h"
- >
- </File>
- <Filter
- Name="Release"
- Filter="cpp;moc"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\GeneratedFiles\Release\moc_FTNoIR_Protocol_FTIR.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Debug"
- Filter="cpp;moc"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\GeneratedFiles\Debug\moc_FTNoIR_Protocol_FTIR.cpp"
- >
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCLCompilerTool"
- />
- </FileConfiguration>
- </File>
- </Filter>
- </Filter>
- </Files>
- <Globals>
- <Global
- Name="lupdateOnBuild"
- Value="0"
- />
- <Global
- Name="MocDir"
- Value=".\GeneratedFiles\$(ConfigurationName)"
- />
- <Global
- Name="MocOptions"
- Value=""
- />
- <Global
- Name="QtVersion Win32"
- Value="$(DefaultQtVersion)"
- />
- <Global
- Name="RccDir"
- Value=".\GeneratedFiles"
- />
- <Global
- Name="UicDir"
- Value=".\GeneratedFiles"
- />
- </Globals>
-</VisualStudioProject>
diff --git a/FTNoIR_Protocol_FTIR/Protocol.qrc b/FTNoIR_Protocol_FTIR/Protocol.qrc
deleted file mode 100644
index a527e454..00000000
--- a/FTNoIR_Protocol_FTIR/Protocol.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>images/TrackIR.ico</file>
- </qresource>
-</RCC>
diff --git a/FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dialog.cpp b/FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dialog.cpp
deleted file mode 100644
index 24a9697a..00000000
--- a/FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dialog.cpp
+++ /dev/null
@@ -1,192 +0,0 @@
-/********************************************************************************
-* FaceTrackNoIR This program is a private project of some enthusiastic *
-* gamers from Holland, who don't like to pay much for *
-* head-tracking. *
-* *
-* Copyright (C) 2012 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 <http://www.gnu.org/licenses/>. *
-* *
-********************************************************************************/
-/*
- Modifications (last one on top):
- 20120830 - WVR: The Dialog class was used to get general info on the DLL. This
- had a big disadvantage: the complete dialog was loaded, just to get
- some data and then it was deleted again (without ever showing the dialog).
- The ProtocolDll class solves this.
- The functions to get the name(s) and icon were removed from the two other classes.
-*/
-#include "ftnoir_protocol_ftir.h"
-#include <QDebug>
-
-//*******************************************************************************************************
-// FaceTrackNoIR Client Settings-dialog.
-//*******************************************************************************************************
-
-//
-// Constructor for server-settings-dialog
-//
-FTIRControls::FTIRControls() :
-QWidget()
-{
- QString aFileName; // File Path and Name
-
- ui.setupUi( this );
-
- // Connect Qt signals to member-functions
- connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK()));
- connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(doCancel()));
- connect(ui.chkTIRViews, SIGNAL(stateChanged(int)), this, SLOT(chkTIRViewsChanged()));
- connect(ui.chkStartDummy, SIGNAL(stateChanged(int)), this, SLOT(settingChanged()));
-
- aFileName = QCoreApplication::applicationDirPath() + "/";
- aFileName.append(FTIR_VIEWS_FILENAME);
- if ( !QFile::exists( aFileName ) ) {
- ui.chkTIRViews->setChecked( false );
- ui.chkTIRViews->setEnabled ( false );
- }
- else {
- ui.chkTIRViews->setEnabled ( true );
- }
-
- theProtocol = NULL;
-
- // Load the settings from the current .INI-file
- loadSettings();
-}
-
-//
-// Destructor for server-dialog
-//
-FTIRControls::~FTIRControls() {
- qDebug() << "~FTIRControls() says: started";
-}
-
-void FTIRControls::Release()
-{
- delete this;
-}
-
-//
-// Initialize tracker-client-dialog
-//
-void FTIRControls::Initialize(QWidget *parent) {
-
- QPoint offsetpos(100, 100);
- if (parent) {
- this->move(parent->pos() + offsetpos);
- }
- show();
-}
-
-//
-// OK clicked on server-dialog
-//
-void FTIRControls::doOK() {
- save();
- this->close();
-}
-
-// override show event
-void FTIRControls::showEvent ( QShowEvent * event ) {
- loadSettings();
-}
-
-//
-// Cancel clicked on server-dialog
-//
-void FTIRControls::doCancel() {
- //
- // Ask if changed Settings should be saved
- //
- if (settingsDirty) {
- int ret = QMessageBox::question ( this, "Settings have changed", "Do you want to save the settings?", QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Discard );
-
- qDebug() << "doCancel says: answer =" << ret;
-
- switch (ret) {
- case QMessageBox::Save:
- save();
- this->close();
- break;
- case QMessageBox::Discard:
- this->close();
- break;
- case QMessageBox::Cancel:
- // Cancel was clicked
- break;
- default:
- // should never be reached
- break;
- }
- }
- else {
- this->close();
- }
-}
-
-//
-// Load the current Settings from the currently 'active' INI-file.
-//
-void FTIRControls::loadSettings() {
- qDebug() << "loadSettings says: Starting ";
- QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
-
- QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
- QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
-
- qDebug() << "loadSettings says: iniFile = " << currentFile;
-
- iniFile.beginGroup ( "FTIR" );
- ui.chkTIRViews->setChecked (iniFile.value ( "useTIRViews", 0 ).toBool());
- ui.chkStartDummy->setChecked (iniFile.value ( "useDummyExe", 1 ).toBool());
-
- iniFile.endGroup ();
-
- settingsDirty = false;
-}
-
-//
-// Save the current Settings to the currently 'active' INI-file.
-//
-void FTIRControls::save() {
- QSettings settings("Abbequerque Inc.", "FaceTrackNoIR"); // Registry settings (in HK_USER)
-
- QString currentFile = settings.value ( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString();
- QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file)
-
- iniFile.beginGroup ( "FTIR" );
- iniFile.setValue ( "useTIRViews", ui.chkTIRViews->isChecked() );
- iniFile.setValue ( "useDummyExe", ui.chkStartDummy->isChecked() );
- iniFile.endGroup ();
-
- settingsDirty = false;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Factory function that creates instances if the Protocol-settings dialog object.
-
-// Export both decorated and undecorated names.
-// GetProtocolDialog - Undecorated name, which can be easily used with GetProcAddress
-// Win32 API function.
-// _GetProtocolDialog@0 - Common name decoration for __stdcall functions in C language.
-#pragma comment(linker, "/export:GetProtocolDialog=_GetProtocolDialog@0")
-
-FTNOIR_PROTOCOL_BASE_EXPORT IProtocolDialogPtr __stdcall GetProtocolDialog( )
-{
- return new FTIRControls;
-}
diff --git a/FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dll.cpp b/FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dll.cpp
deleted file mode 100644
index 9af0f7ab..00000000
--- a/FTNoIR_Protocol_FTIR/ftnoir_protocol_FTIR_dll.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/********************************************************************************
-* FaceTrackNoIR This program is a private project of some enthusiastic *
-* gamers from Holland, who don't like to pay much for *
-* head-tracking. *
-* *
-* Copyright (C) 2012 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 <http://www.gnu.org/licenses/>. *
-* *
-********************************************************************************/
-/*
- Modifications (last one on top):
- 20120830 - WVR: The Dialog class was used to get general info on the DLL. This
- had a big disadvantage: the complete dialog was loaded, just to get
- some data and then it was deleted again (without ever showing the dialog).
- The ProtocolDll class solves this.
- The functions to get the name(s) and icon were removed from the two other classes.
-*/
-#include "ftnoir_protocol_ftir.h"
-#include <QDebug>
-
-FTNoIR_ProtocolDll::FTNoIR_ProtocolDll() {
-}
-
-FTNoIR_ProtocolDll::~FTNoIR_ProtocolDll()
-{
-
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Factory function that creates instances if the Protocol object.
-
-// Export both decorated and undecorated names.
-// GetProtocolDll - Undecorated name, which can be easily used with GetProcAddress
-// Win32 API function.
-// _GetProtocolDll@0 - Common name decoration for __stdcall functions in C language.
-#pragma comment(linker, "/export:GetProtocolDll=_GetProtocolDll@0")
-
-FTNOIR_PROTOCOL_BASE_EXPORT IProtocolDllPtr __stdcall GetProtocolDll()
-{
- return new FTNoIR_ProtocolDll;
-}
diff --git a/FTNoIR_Protocol_FTIR/images/TrackIR.ico b/FTNoIR_Protocol_FTIR/images/TrackIR.ico
deleted file mode 100644
index 99e02e7b..00000000
--- a/FTNoIR_Protocol_FTIR/images/TrackIR.ico
+++ /dev/null
Binary files differ