summaryrefslogtreecommitdiffhomepage
path: root/FTNoIR_Protocol_FT
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2013-03-22 20:48:17 +0100
committerStanislaw Halik <sthalik@misaki.pl>2013-03-22 20:48:17 +0100
commit3089c4bbc10e98d18f43e8a70e7a3d0c0eaf0900 (patch)
treec6f985472c05372417ecd4a861f6c2f346b63fd3 /FTNoIR_Protocol_FT
parent3e1515e88c6f750c193ed9b9908d8a9c09e5b025 (diff)
Downcase. PLEASE TURN OFF IGNORING CASE IN GIT CONFIG!!!
.git/config: [core] ignorecase = false
Diffstat (limited to 'FTNoIR_Protocol_FT')
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_FTcontrols.ui437
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp513
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h143
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT_vc8.vcproj393
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT_vc9.vcproj385
-rw-r--r--FTNoIR_Protocol_FT/FTTypes.h104
-rw-r--r--FTNoIR_Protocol_FT/Protocol.qrc5
-rw-r--r--FTNoIR_Protocol_FT/csv.cpp99
-rw-r--r--FTNoIR_Protocol_FT/csv.h38
-rw-r--r--FTNoIR_Protocol_FT/ftnoir_protocol_FT_dialog.cpp235
-rw-r--r--FTNoIR_Protocol_FT/ftnoir_protocol_FT_dll.cpp56
-rw-r--r--FTNoIR_Protocol_FT/images/Freetrack.icobin17542 -> 0 bytes
12 files changed, 0 insertions, 2408 deletions
diff --git a/FTNoIR_Protocol_FT/FTNoIR_FTcontrols.ui b/FTNoIR_Protocol_FT/FTNoIR_FTcontrols.ui
deleted file mode 100644
index fc5abbcf..00000000
--- a/FTNoIR_Protocol_FT/FTNoIR_FTcontrols.ui
+++ /dev/null
@@ -1,437 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>UICFTControls</class>
- <widget class="QWidget" name="UICFTControls">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>645</width>
- <height>416</height>
- </rect>
- </property>
- <property name="minimumSize">
- <size>
- <width>645</width>
- <height>0</height>
- </size>
- </property>
- <property name="windowTitle">
- <string>FreeTrack 2.0 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>
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <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>80</x>
- <y>30</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>189</x>
- <y>10</y>
- <width>421</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>TIRViews is only required for some older games (like CFS3). For it to work, TIRViews.dll</string>
- </property>
- </widget>
- <widget class="QLabel" name="label_5">
- <property name="geometry">
- <rect>
- <x>189</x>
- <y>30</y>
- <width>421</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>must be placed in the FaceTrackNoIR program folder. If the checkbox is disabled, the</string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QLabel" name="label_6">
- <property name="geometry">
- <rect>
- <x>189</x>
- <y>50</y>
- <width>411</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>the DLL was not found. You can get it from NaturalPoint.</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>20</x>
- <y>30</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_3">
- <property name="geometry">
- <rect>
- <x>189</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>189</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_7">
- <property name="geometry">
- <rect>
- <x>189</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>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_3">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>70</height>
- </size>
- </property>
- <property name="title">
- <string>Select interface</string>
- </property>
- <widget class="QLabel" name="label_8">
- <property name="geometry">
- <rect>
- <x>189</x>
- <y>10</y>
- <width>351</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>Some games support both FreeTrack and TrackIR and may get confused,</string>
- </property>
- </widget>
- <widget class="QLabel" name="label_2">
- <property name="geometry">
- <rect>
- <x>189</x>
- <y>30</y>
- <width>261</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>when both interfaces are visible.</string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QLabel" name="label_9">
- <property name="geometry">
- <rect>
- <x>189</x>
- <y>50</y>
- <width>381</width>
- <height>16</height>
- </rect>
- </property>
- <property name="text">
- <string>Try to disable one interface, if you experience problems.</string>
- </property>
- </widget>
- <widget class="QComboBox" name="cbxSelectInterface">
- <property name="geometry">
- <rect>
- <x>6</x>
- <y>30</y>
- <width>168</width>
- <height>22</height>
- </rect>
- </property>
- </widget>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox_4">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>70</height>
- </size>
- </property>
- <property name="title">
- <string>Repair NPClient location</string>
- </property>
- <widget class="QLabel" name="label_10">
- <property name="geometry">
- <rect>
- <x>188</x>
- <y>10</y>
- <width>381</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text">
- <string>Users who use other software with an NPClient DLL (like TrackIR, FreeTrack or </string>
- </property>
- </widget>
- <widget class="QLabel" name="label_11">
- <property name="geometry">
- <rect>
- <x>184</x>
- <y>30</y>
- <width>411</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text">
- <string> GlovePIE) may need to repair the location of the DLL, after running FaceTrackNoIR.</string>
- </property>
- <property name="wordWrap">
- <bool>true</bool>
- </property>
- </widget>
- <widget class="QLabel" name="label_12">
- <property name="geometry">
- <rect>
- <x>187</x>
- <y>50</y>
- <width>391</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text">
- <string>Use this button to locate the desired NPClient DLL.</string>
- </property>
- </widget>
- <widget class="QPushButton" name="bntLocateNPClient">
- <property name="geometry">
- <rect>
- <x>4</x>
- <y>30</y>
- <width>171</width>
- <height>23</height>
- </rect>
- </property>
- <property name="text">
- <string>Locate DLL</string>
- </property>
- </widget>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_3">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </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="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_FT/FTNoIR_Protocol_FT.cpp b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp
deleted file mode 100644
index b8461993..00000000
--- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp
+++ /dev/null
@@ -1,513 +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) 2013 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/>. *
-* *
-* FTServer FTServer is the Class, that communicates headpose-data *
-* to games, using the FreeTrackClient.dll. *
-********************************************************************************/
-/*
- Modifications (last one on top):
- 20130209 - WVR: Some games support both interfaces and cause trouble. Added ComboBox to fix this (hide one interface
- by clearing the appropriate Registry-setting).
- 20130203 - WVR: Added Tirviews and dummy checkboxes to the Settings dialog. This is necessary for CFS3 etc.
- 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
- 20100601 - WVR: Added Mutex-bit in run(). Thought it wasn't so important (still do...).
- 20100523 - WVR: Implemented the Freetrack-protocol just like Freetrack does. Earlier
- FaceTrackNoIR only worked with an adapted DLL, with a putdata function.
- Now it works direcly in shared memory!
-*/
-#include "ftnoir_protocol_ft.h"
-#include "csv.h"
-
-/** constructor **/
-FTNoIR_Protocol::FTNoIR_Protocol()
-{
- comhandle = 0;
- useTIRViews = false;
- useDummyExe = false;
- intUsedInterface = 0;
-
- //
- // Load the INI-settings.
- //
- loadSettings();
-
- ProgramName = "";
- intGameID = 0;
-
- dummyTrackIR = 0;
- viewsStart = 0;
- viewsStop = 0;
-
-}
-
-/** destructor **/
-FTNoIR_Protocol::~FTNoIR_Protocol()
-{
-
- qDebug()<< "~FTNoIR_Protocol: Destructor started.";
-
- //
- // Stop if started
- //
- 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";
- }
-
- //
- // Destroy the File-mapping
- //
- FTDestroyMapping();
-}
-
-void FTNoIR_Protocol::Initialize()
-{
- return;
-}
-
-//
-// 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)){
- QString strError( "Cannot load file: FaceTrackNoIR Supported Games.csv" );
- sprintf_s(pMemData->ProgramName, 99, strError.toAscii());
- sprintf_s(pMemData->FTNVERSION, 9, "V160");
-
- //
- // Return true anyway, because maybe it's V160 compatible.
- //
- return true;
- }
- 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"
- //
- QString strUnknown("Unknown game connected (ID = " + gameID + ")");
- sprintf_s(pMemData->ProgramName, 99, strUnknown.toAscii());
- file.close();
- return true;
-}
-
-//
-// 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 ( "FT" );
- intUsedInterface = iniFile.value ( "UsedInterface", 0 ).toInt();
- iniFile.endGroup ();
-
- //
- // Use the settings-section from the deprecated fake-TIR protocol, as they are most likely to be found there.
- //
- 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;
-
-float headPosX;
-float headPosY;
-float headPosZ;
-
-float headRotX;
-float headRotY;
-float headRotZ;
-
-PDWORD_PTR MsgResult = 0;
-
-
- //
- // Scale the Raw measurements to the client measurements.
- //
- headRotX = getRadsFromDegrees(headpose->pitch);
- headRotY = getRadsFromDegrees(headpose->yaw);
- headRotZ = getRadsFromDegrees(headpose->roll);
- headPosX = headpose->x * 10;
- headPosY = headpose->y * 10;
- headPosZ = headpose->z * 10;
-
- virtRotX = getRadsFromDegrees(headpose->pitch);
- virtRotY = getRadsFromDegrees(headpose->yaw);
- virtRotZ = getRadsFromDegrees(headpose->roll);
- virtPosX = headpose->x * 10;
- virtPosY = headpose->y * 10;
- virtPosZ = headpose->z * 10;
-
- //
- // Check if the pointer is OK and wait for the Mutex.
- //
- if ( (pMemData != NULL) && (WaitForSingleObject(hFTMutex, 100) == WAIT_OBJECT_0) ) {
-
- //
- // Copy the Raw measurements directly to the client.
- //
- pMemData->data.RawX = headPosX;
- pMemData->data.RawY = headPosY;
- pMemData->data.RawZ = headPosZ;
- pMemData->data.RawPitch = headRotX;
- pMemData->data.RawYaw = headRotY;
- pMemData->data.RawRoll = headRotZ;
-
- //
- //
- pMemData->data.X = virtPosX;
- pMemData->data.Y = virtPosY;
- pMemData->data.Z = virtPosZ;
- pMemData->data.Pitch = virtRotX;
- pMemData->data.Yaw = virtRotY;
- pMemData->data.Roll = virtRotZ;
-
- //
- // Leave some values 0 yet...
- //
- pMemData->data.X1 = pMemData->data.DataID + 10;
- pMemData->data.X2 = 0;
- pMemData->data.X3 = 0;
- pMemData->data.X4 = 0;
- pMemData->data.Y1 = 0;
- pMemData->data.Y2 = 0;
- pMemData->data.Y3 = 0;
- pMemData->data.Y4 = 0;
-
- //
- // 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!
- //
- if (hMainWindow != pMemData->handle) { // Handle in memory-mapping was changed!
- comhandle = (__int32) pMemData->handle; // Get the command from the Game.
- if (comhandle == 1) { // "Report Program Name"
- SendMessageTimeout( (HWND) hMainWindow, RegisterWindowMessageA(FT_PROGRAMID), 0, 0, 0, 2000, MsgResult);
- pMemData->handle = 0; // Reset the command, to enable future commands...
- }
- }
-
- //
- // The game-ID was changed?
- //
- QString gameID = QString(pMemData->GameID);
- //QString gameID = QString("9999");
-
-// 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);
- }
- intGameID = gameID.toInt();
- }
- }
- else {
- intGameID = 0;
- pMemData->ProgramName[0] = NULL;
- pMemData->FTNID[0] = NULL;
- pMemData->FTNVERSION[0] = NULL;
- }
-
- ReleaseMutex(hFTMutex);
- }
-
- pMemData->data.DataID += 1;
-}
-
-//
-// 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)
- QSettings settingsTIR("NaturalPoint", "NATURALPOINT\\NPClient Location"); // Registry settings (in HK_USER)
- QString aLocation; // Location of Client DLL
-
- qDebug() << "checkServerInstallationOK says: Starting Function";
-
- try {
-
- //
- // Write the path in the registry (for FreeTrack and FreeTrack20), for the game(s).
- //
- aLocation = QCoreApplication::applicationDirPath() + "/";
-
- qDebug() << "checkServerInstallationOK says: used interface = " << intUsedInterface;
- switch (intUsedInterface) {
- case 0: // Use both interfaces
- settings.setValue( "Path" , aLocation );
- settingsTIR.setValue( "Path" , aLocation );
- break;
- case 1: // Use FreeTrack, disable TrackIR
- settings.setValue( "Path" , aLocation );
- settingsTIR.setValue( "Path" , "" );
- break;
- case 2: // Use TrackIR, disable FreeTrack
- settings.setValue( "Path" , "" );
- settingsTIR.setValue( "Path" , aLocation );
- break;
- default:
- // should never be reached
- break;
- }
-
- //
- // TIRViews must be started first, or the NPClient DLL will never be loaded.
- //
- if (useTIRViews) {
-
- QString aFileName = QCoreApplication::applicationDirPath() + "/TIRViews.dll";
- if ( QFile::exists( aFileName ) ) {
-
- FTIRViewsLib.setFileName(aFileName);
- 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!";
- }
- }
- }
-
- //
- // Check if TIRViews or dummy TrackIR.exe is required for this game
- //
- if (useDummyExe) {
- QString program = QCoreApplication::applicationDirPath() + "/TrackIR.exe";
- dummyTrackIR = new QProcess();
- dummyTrackIR->start(program);
-
- qDebug() << "FTServer::run() says: TrackIR.exe executed!";
- }
-
-
- } catch(...) {
- settings.~QSettings();
- }
- return FTCreateMapping( handle );
-}
-
-//
-// 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";
-
- //
- // A FileMapping is used to create 'shared memory' between the FTServer and the FTClient.
- //
- // Try to create a FileMapping to the Shared Memory.
- // If one already exists: close it.
- //
- hFTMemMap = CreateFileMappingA( INVALID_HANDLE_VALUE , 00 , PAGE_READWRITE , 0 ,
-// 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;
- }
-
- //
- // Create a new FileMapping, Read/Write access
- //
- 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);
- 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;
- }
- hFTMutex = CreateMutexA(NULL, false, FREETRACK_MUTEX);
- }
- else {
- QMessageBox::information(0, "FaceTrackNoIR error", QString("FTServer Error! \n"));
- return false;
- }
-
- if (pMemData != NULL) {
- pMemData->data.DataID = 1;
- pMemData->data.CamWidth = 100;
- pMemData->data.CamHeight = 250;
- }
-
- return true;
-}
-
-//
-// Destory the FileMapping to the shared memory
-//
-void FTNoIR_Protocol::FTDestroyMapping()
-{
- if ( pMemData != NULL ) {
- UnmapViewOfFile ( pMemData );
- }
-
- CloseHandle( hFTMutex );
- CloseHandle( hFTMemMap );
- hFTMemMap = 0;
-
-}
-
-//
-// Return a name, if present the name from the Game, that is connected...
-//
-void FTNoIR_Protocol::getNameFromGame( char *dest )
-{
- sprintf_s(dest, 99, "FreeTrack interface");
-
- qDebug() << "FTNoIR_Protocol::getNameFromGame says: Started, pMemData = " << pMemData << ", mutex = " << hFTMutex;
-
- //
- // Check if the pointer is OK and wait for the Mutex.
- //
-// if ( (pMemData != NULL) && (WaitForSingleObject(hFTMutex, 100) == WAIT_OBJECT_0) ) {
- if (pMemData != NULL) {
- qDebug() << "FTNoIR_Protocol::getNameFromGame says: Inside MemData";
- sprintf_s(dest, 99, "%s", pMemData->ProgramName);
- }
-
- 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_FT/FTNoIR_Protocol_FT.h b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h
deleted file mode 100644
index c82c3e79..00000000
--- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h
+++ /dev/null
@@ -1,143 +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/>. *
-* *
-* FTServer FTServer is the Class, that communicates headpose-data *
-* to games, using the FreeTrackClient.dll. *
-********************************************************************************/
-#pragma once
-#ifndef INCLUDED_FTSERVER_H
-#define INCLUDED_FTSERVER_H
-
-#include "..\ftnoir_protocol_base\ftnoir_protocol_base.h"
-#include "ui_FTNoIR_FTcontrols.h"
-#include "FTTypes.h"
-#include <QMessageBox>
-#include <QSettings>
-#include <QLibrary>
-#include <QProcess>
-#include <QDebug>
-#include <QFile>
-#include "Windows.h"
-//#include "math.h"
-
-//typedef char *(WINAPI *importProvider)(void);
-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 FTCreateMapping(HANDLE handle);
- void FTDestroyMapping();
-
- importTIRViewsStart viewsStart; // Functions inside TIRViews.dll
- importTIRViewsStop viewsStop;
-
- HANDLE hFTMemMap;
- FTMemMap *pMemData;
- HANDLE hFTMutex;
-
- HANDLE hMainWindow; // Save the handle to FaceTrackNoIR main-window
- __int32 comhandle; // Handle on x32, command on x64
-
- // Private properties
- QString ProgramName;
- QLibrary FTIRViewsLib;
- QProcess *dummyTrackIR;
- int intGameID;
- int intUsedInterface; // Determine which interface to use (or to hide from the game)
- bool useTIRViews; // Needs to be in the Settings dialog
- bool useDummyExe;
-
- float getRadsFromDegrees ( float degrees ) { return (degrees * 0.017453f); }
- bool getGameData( QString gameID );
- void loadSettings();
-
-};
-
-// Widget that has controls for FTNoIR protocol client-settings.
-class FTControls: public QWidget, Ui::UICFTControls, public IProtocolDialog
-{
- Q_OBJECT
-public:
-
- explicit FTControls();
- virtual ~FTControls();
- 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::UICFTControls ui;
- void loadSettings();
- void save();
-
- /** helper **/
- bool settingsDirty;
- FTNoIR_Protocol *theProtocol;
-
-private slots:
- void selectDLL();
- void doOK();
- void doCancel();
- void settingChanged() { settingsDirty = true; };
- void settingChanged(int) { 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("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"); };
-};
-
-
-#endif//INCLUDED_FTSERVER_H
-//END
diff --git a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT_vc8.vcproj b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT_vc8.vcproj
deleted file mode 100644
index f8f80412..00000000
--- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT_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_FT"
- ProjectGUID="{FE2FF09B-207D-468C-9763-23861956F388}"
- RootNamespace="FTNoIR_Protocol_FT"
- 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"
- 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"
- 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_FT.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FT_dialog.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FT_dll.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <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_FT.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_FT.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>
- <File
- RelativePath=".\FTTypes.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Form Files"
- Filter="ui"
- UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"
- >
- <File
- RelativePath=".\FTNoIR_FTcontrols.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\FS9.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\FS9.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_FTcontrols.h"
- >
- </File>
- <Filter
- Name="Release"
- Filter="cpp;moc"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\GeneratedFiles\Release\moc_FTNoIR_Protocol_FT.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_FT.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_FT/FTNoIR_Protocol_FT_vc9.vcproj b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT_vc9.vcproj
deleted file mode 100644
index e5146727..00000000
--- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT_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_FT"
- ProjectGUID="{FE2FF09B-207D-468C-9763-23861956F388}"
- RootNamespace="FTNoIR_Protocol_FT"
- 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"
- 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"
- 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_FT.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FT_dialog.cpp"
- >
- </File>
- <File
- RelativePath=".\ftnoir_protocol_FT_dll.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <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_FT.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_FT.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>
- <File
- RelativePath=".\FTTypes.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Form Files"
- Filter="ui"
- UniqueIdentifier="{99349809-55BA-4b9d-BF79-8FDBB0286EB3}"
- >
- <File
- RelativePath=".\FTNoIR_FTcontrols.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\FS9.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\FS9.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_FTcontrols.h"
- >
- </File>
- <Filter
- Name="Release"
- Filter="cpp;moc"
- SourceControlFiles="false"
- >
- <File
- RelativePath=".\GeneratedFiles\Release\moc_FTNoIR_Protocol_FT.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_FT.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_FT/FTTypes.h b/FTNoIR_Protocol_FT/FTTypes.h
deleted file mode 100644
index 1f389711..00000000
--- a/FTNoIR_Protocol_FT/FTTypes.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/********************************************************************************
-* FTTypes FTTypes contains th specific type definitions for the *
-* FreeTrack protocol. *
-* It was loosely translated from FTTypes.pas *
-* which was created by the FreeTrack-team. *
-* *
-* Copyright (C) 2013 Wim Vriend (Developing) *
-* Ron Hendriks (Testing and Research) *
-* *
-* Homepage <http://www.free-track.net> *
-* *
-* 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/>. *
-* *
-* 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
-
-#include "Windows.h"
-#include <tchar.h>
-#include <stdio.h>
-
-//#include "Registry.h"
-
-// static const char* FT_CLIENT_LOCATION = "Software\\Freetrack\\FreetrackClient";
- static const char* FT_CLIENT_FILENAME = "FreeTrackClient.Dll";
- static const char* FT_MM_DATA = "FT_SharedMem";
- static const char* FREETRACK = "Freetrack";
- static const char* FREETRACK_MUTEX = "FT_Mutext";
- static const char* FT_PROGRAMID = "FT_ProgramID";
-
-
-struct TFreeTrackData {
- int DataID;
- int CamWidth;
- int CamHeight;
- // virtual pose
- float Yaw; // positive yaw to the left
- float Pitch; // positive pitch up
- float Roll; // positive roll to the left
- float X;
- float Y;
- float Z;
- // raw pose with no smoothing, sensitivity, response curve etc.
- float RawYaw;
- float RawPitch;
- float RawRoll;
- float RawX;
- float RawY;
- float RawZ;
- // raw points, sorted by Y, origin top left corner
- float X1;
- float Y1;
- float X2;
- float Y2;
- float X3;
- float Y3;
- float X4;
- float Y4;
-};
-typedef TFreeTrackData * PFreetrackData;
-
-struct FTMemMap {
- TFreeTrackData data;
-
-#ifdef WIN64
- __int32 command;
-#else
- HANDLE handle;
-#endif
- 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;
-
-//extern bool (*FTGetData) (PFreetrackData data);
-// DLL function signatures
-// These match those given in FTTypes.pas
-// WINAPI is macro for __stdcall defined somewhere in the depths of windows.h
-typedef bool (WINAPI *importGetData)(TFreeTrackData * data);
-typedef char *(WINAPI *importGetDllVersion)(void);
-typedef void (WINAPI *importReportID)(int name);
-typedef char *(WINAPI *importProvider)(void);
-
-#endif//INCLUDED_FTTYPES_H
diff --git a/FTNoIR_Protocol_FT/Protocol.qrc b/FTNoIR_Protocol_FT/Protocol.qrc
deleted file mode 100644
index 25ecc6fe..00000000
--- a/FTNoIR_Protocol_FT/Protocol.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-<RCC>
- <qresource prefix="/">
- <file>images/Freetrack.ico</file>
- </qresource>
-</RCC>
diff --git a/FTNoIR_Protocol_FT/csv.cpp b/FTNoIR_Protocol_FT/csv.cpp
deleted file mode 100644
index 22852f89..00000000
--- a/FTNoIR_Protocol_FT/csv.cpp
+++ /dev/null
@@ -1,99 +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) 2013 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/>. *
-* *
-********************************************************************************/
-#include "csv.h"
-#include <QTextDecoder>
-
-CSV::CSV(QIODevice * device)
-{
- m_device = device;
- m_codec = QTextCodec::codecForLocale();
- m_pos = 0;
- m_rx = QRegExp("((?:(?:[^;\\n]*;?)|(?:\"[^\"]*\";?))*)\\n");
-}
-CSV::CSV(QString &string){
- m_device = NULL;
- m_codec = QTextCodec::codecForLocale();
- m_string = string;
- m_pos = 0;
- m_rx = QRegExp("((?:(?:[^;\\n]*;?)|(?:\"[^\"]*\";?))*)\\n");
-}
-
-CSV::~CSV()
-{
- //delete m_codec;
-}
-
-
-void CSV::setCodec(const char* codecName){
- //delete m_codec;
- m_codec = QTextCodec::codecForName(codecName);
-}
-
-QString CSV::readLine(){
- QString line;
-
- if(m_string.isNull()){
- //READ DATA FROM DEVICE
- if(m_device && m_device->isReadable()){
- QTextDecoder dec(m_codec);
- m_string = dec.toUnicode(m_device->readAll());
- }else{
- return QString();
- }
- }
-
- //PARSE
- if((m_pos = m_rx.indexIn(m_string,m_pos)) != -1) {
- line = m_rx.cap(1);
- m_pos += m_rx.matchedLength();
- }
- return line;
-
-}
-QStringList CSV::parseLine(){
- return parseLine(readLine());
-}
-QStringList CSV::parseLine(QString line){
- QStringList list;
- int pos2 = 0;
- QRegExp rx2("(?:\"([^\"]*)\";?)|(?:([^;]*);?)");
- if(line.size()<1){
- list << "";
- }else while (line.size()>pos2 && (pos2 = rx2.indexIn(line, pos2)) != -1) {
- QString col;
- if(rx2.cap(1).size()>0)
- col = rx2.cap(1);
- else if(rx2.cap(2).size()>0)
- col = rx2.cap(2);
-
- list << col;
-
- if(col.size())
- pos2 += rx2.matchedLength();
- else
- pos2++;
- }
- return list;
-} \ No newline at end of file
diff --git a/FTNoIR_Protocol_FT/csv.h b/FTNoIR_Protocol_FT/csv.h
deleted file mode 100644
index 13231293..00000000
--- a/FTNoIR_Protocol_FT/csv.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*dummy CSV reader for QT4*/
-/*version 0.1*/
-/*11.1.2009*/
-#ifndef CSV_H
-#define CSV_H
-
-//#include "myclass_api.h"
-
-#include <QObject>
-#include <QStringList>
-#include <QIODevice>
-#include <QTextCodec>
-#include <QRegExp>
-
-class /*MYCLASS_API*/ CSV /*: public QObject*/
-{
- /*Q_OBJECT*/
-
-public:
- CSV(QIODevice * device);
- CSV(QString &string);
- ~CSV();
-
- QString readLine();
- QStringList parseLine();
- static QStringList parseLine(QString line);
-
- void setCodec(const char* codecName);
-private:
- QIODevice *m_device;
- QTextCodec *m_codec;
- QString m_string;
- int m_pos;
- QRegExp m_rx;
-
-};
-
-#endif // CSV_H
diff --git a/FTNoIR_Protocol_FT/ftnoir_protocol_FT_dialog.cpp b/FTNoIR_Protocol_FT/ftnoir_protocol_FT_dialog.cpp
deleted file mode 100644
index 2e6c91f7..00000000
--- a/FTNoIR_Protocol_FT/ftnoir_protocol_FT_dialog.cpp
+++ /dev/null
@@ -1,235 +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_ft.h"
-#include <QDebug>
-#include <QFileDialog>
-
-//*******************************************************************************************************
-// FaceTrackNoIR Client Settings-dialog.
-//*******************************************************************************************************
-
-//
-// Constructor for server-settings-dialog
-//
-FTControls::FTControls() :
-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.bntLocateNPClient, SIGNAL(clicked()), this, SLOT(selectDLL()));
- connect(ui.chkTIRViews, SIGNAL(stateChanged(int)), this, SLOT(settingChanged()));
- connect(ui.chkStartDummy, SIGNAL(stateChanged(int)), this, SLOT(settingChanged()));
- connect(ui.cbxSelectInterface, SIGNAL(currentIndexChanged(int)), this, SLOT(settingChanged( int )));
-
- ui.cbxSelectInterface->addItem("Enable both");
- ui.cbxSelectInterface->addItem("Use FreeTrack, hide TrackIR");
- ui.cbxSelectInterface->addItem("Use TrackIR, hide FreeTrack");
-
- theProtocol = NULL;
-
- // Load the settings from the current .INI-file
- loadSettings();
-
-
- aFileName = QCoreApplication::applicationDirPath() + "/TIRViews.dll";
- if ( !QFile::exists( aFileName ) ) {
- ui.chkTIRViews->setChecked( false );
- ui.chkTIRViews->setEnabled ( false );
-
- //
- // Best do this save() last, or it will continually reset the settings... :-(
- //
- save();
- }
- else {
- ui.chkTIRViews->setEnabled ( true );
- }
-
-
-}
-
-//
-// Destructor for server-dialog
-//
-FTControls::~FTControls() {
- qDebug() << "~FTControls() says: started";
-}
-
-//
-// Initialize tracker-client-dialog
-//
-void FTControls::Initialize(QWidget *parent) {
-
- QPoint offsetpos(100, 100);
- if (parent) {
- this->move(parent->pos() + offsetpos);
- }
- show();
-}
-
-//
-// OK clicked on server-dialog
-//
-void FTControls::doOK() {
- save();
- this->close();
-}
-
-// override show event
-void FTControls::showEvent ( QShowEvent * event ) {
- loadSettings();
-}
-
-//
-// Cancel clicked on server-dialog
-//
-void FTControls::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 FTControls::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 ( "FT" );
- ui.cbxSelectInterface->setCurrentIndex( iniFile.value ( "UsedInterface", 0 ).toInt() );
- iniFile.endGroup ();
-
- 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 FTControls::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 ( "FT" );
- iniFile.setValue ( "UsedInterface", ui.cbxSelectInterface->currentIndex());
- iniFile.endGroup ();
-
- iniFile.beginGroup ( "FTIR" );
- iniFile.setValue ( "useTIRViews", ui.chkTIRViews->isChecked() );
- iniFile.setValue ( "useDummyExe", ui.chkStartDummy->isChecked() );
- iniFile.endGroup ();
-
- settingsDirty = false;
-}
-
-//
-// Select a NPClient.dll file, to repair the Location in the Registry.
-// Several program distribute their own version of this file.
-//
-void FTControls::selectDLL() {
- QFileDialog::Options options;
- QFileDialog::FileMode mode;
-
- options |= QFileDialog::DontUseNativeDialog;
- mode = QFileDialog::ExistingFile;
- QString selectedFilter;
- QString fileName = QFileDialog::getOpenFileName( this, tr("Select the desired NPClient DLL"), QCoreApplication::applicationDirPath() + "/NPClient.dll", tr("Dll file (*.dll);;All Files (*)"));
-
- //
- // Write the location of the file in the required Registry-key.
- //
- if (! fileName.isEmpty() ) {
- if (fileName.endsWith("NPClient.dll", Qt::CaseInsensitive) ) {
- QSettings settingsTIR("NaturalPoint", "NATURALPOINT\\NPClient Location"); // Registry settings (in HK_USER)
- QString aLocation = fileName.left(fileName.length() - 12); // Location of Client DLL
-
- settingsTIR.setValue( "Path" , aLocation );
- }
- }
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// 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 FTControls;
-}
diff --git a/FTNoIR_Protocol_FT/ftnoir_protocol_FT_dll.cpp b/FTNoIR_Protocol_FT/ftnoir_protocol_FT_dll.cpp
deleted file mode 100644
index 4513c6ba..00000000
--- a/FTNoIR_Protocol_FT/ftnoir_protocol_FT_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_ft.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_FT/images/Freetrack.ico b/FTNoIR_Protocol_FT/images/Freetrack.ico
deleted file mode 100644
index 02554c3d..00000000
--- a/FTNoIR_Protocol_FT/images/Freetrack.ico
+++ /dev/null
Binary files differ