diff options
author | Wim Vriend <facetracknoir@gmail.com> | 2011-06-04 12:37:46 +0000 |
---|---|---|
committer | Wim Vriend <facetracknoir@gmail.com> | 2011-06-04 12:37:46 +0000 |
commit | 010d82e9392bd2fb5cafe6fbae03c9cdc301a2f8 (patch) | |
tree | ced3d8e7139cdc2b1b0871731cf82ab69e7a801b | |
parent | 555a75bf6740d66857f8b8dee1b30a0a10d8f2db (diff) |
Eagle Dynamics API implemented, added some 'nice to haves'.
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@87 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
24 files changed, 162 insertions, 26 deletions
diff --git a/FTNoIR_Protocol_Base/ftnoir_protocol_base.h b/FTNoIR_Protocol_Base/ftnoir_protocol_base.h index 92372740..2dd03b82 100644 --- a/FTNoIR_Protocol_Base/ftnoir_protocol_base.h +++ b/FTNoIR_Protocol_Base/ftnoir_protocol_base.h @@ -18,6 +18,7 @@ struct IProtocol virtual void Initialize() = 0;
virtual bool checkServerInstallationOK ( HANDLE handle ) = 0;
virtual void sendHeadposeToGame( T6DOF *headpose ) = 0;
+ virtual void getNameFromGame( char *dest ) = 0; // Take care dest can handle up to 100 chars...
};
// Handle type. In C++ language the iterface type is used.
diff --git a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp index fbf5c8d5..f799d015 100644 --- a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp +++ b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp @@ -221,6 +221,14 @@ bool FTNoIR_Protocol_FG::checkServerInstallationOK( HANDLE handle ) return true;
}
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_FG::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "FlightGear");
+ return;
+}
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h index 45188257..63b64f16 100644 --- a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h +++ b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h @@ -50,6 +50,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
// Tracker *headTracker; // For upstream messages...
diff --git a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp index 6e29d45e..848d115f 100644 --- a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp +++ b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp @@ -118,7 +118,7 @@ float virtRotX; float virtRotY;
float virtRotZ;
- qDebug() << "FSUIPCServer::run() says: started!";
+// qDebug() << "FSUIPCServer::run() says: started!";
virtRotX = -1.0f * headpose->position.pitch; // degrees
virtRotY = headpose->position.yaw;
@@ -206,6 +206,15 @@ bool FTNoIR_Protocol_FSUIPC::checkServerInstallationOK( HANDLE handle ) return true;
}
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_FSUIPC::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "FS2002/2004");
+ return;
+}
+
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h index 22e5c2b7..70785fae 100644 --- a/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h +++ b/FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h @@ -66,6 +66,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
// Private properties
diff --git a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp index 4d0ef950..e6100956 100644 --- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp +++ b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp @@ -39,6 +39,7 @@ /** constructor **/
FTNoIR_Protocol_FT::FTNoIR_Protocol_FT()
{
+ comhandle = 0;
loadSettings();
ProgramName = "";
}
@@ -54,7 +55,7 @@ FTNoIR_Protocol_FT::~FTNoIR_Protocol_FT() //
// Free the DLL's
//
- FTClientLib.unload();
+ //////FTClientLib.unload();
}
/** helper to Auto-destruct **/
@@ -94,6 +95,9 @@ float headRotX; float headRotY;
float headRotZ;
+PDWORD_PTR MsgResult = 0;
+
+
//
// Scale the Raw measurements to the client measurements.
//
@@ -149,6 +153,19 @@ float headRotZ; //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!
+ //
+ 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...
+ }
+ }
+
ReleaseMutex(hFTMutex);
}
@@ -198,13 +215,13 @@ bool FTNoIR_Protocol_FT::checkServerInstallationOK( HANDLE handle ) //
// 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;
- }
+ ////////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"));
@@ -249,10 +266,11 @@ bool FTNoIR_Protocol_FT::FTCreateMapping( HANDLE handle ) //
hFTMemMap = OpenFileMappingA( FILE_MAP_ALL_ACCESS , false , (LPCSTR) FT_MM_DATA );
if ( ( hFTMemMap != 0 ) ) {
- qDebug() << "FTCreateMapping says: FileMapping Created again:" << hFTMemMap;
+ qDebug() << "FTCreateMapping says: FileMapping Opened:" << hFTMemMap;
pMemData = (FTMemMap *) MapViewOfFile(hFTMemMap, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(TFreeTrackData) + sizeof(hFTMemMap) + 100);
if (pMemData != NULL) {
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);
}
@@ -285,6 +303,27 @@ void FTNoIR_Protocol_FT::FTDestroyMapping() }
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_FT::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "FreeTrack interface");
+
+ qDebug() << "FTNoIR_Protocol_FT::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_FT::getNameFromGame says: Inside MemData";
+ sprintf_s(dest, 99, "%s", pMemData->ProgramName);
+ }
+
+ return;
+}
+
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h index 7b23fcba..02e9525f 100644 --- a/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h +++ b/FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h @@ -53,6 +53,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
bool FTCreateMapping(HANDLE handle);
@@ -62,6 +63,9 @@ private: 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 FTClientLib;
diff --git a/FTNoIR_Protocol_FT/FTTypes.h b/FTNoIR_Protocol_FT/FTTypes.h index a6dcb6c9..c83ce90d 100644 --- a/FTNoIR_Protocol_FT/FTTypes.h +++ b/FTNoIR_Protocol_FT/FTTypes.h @@ -75,7 +75,12 @@ typedef TFreeTrackData * PFreetrackData; struct FTMemMap {
TFreeTrackData data;
+
+#ifdef WIN64
+ __int32 command;
+#else
HANDLE handle;
+#endif
char ProgramName[100];
};
typedef FTMemMap * PFTMemMap;
diff --git a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp index 59ea086b..83b21f7b 100644 --- a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp +++ b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp @@ -339,6 +339,14 @@ void FTNoIR_Protocol_FTIR::FTIRDestroyMapping() }
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_FTIR::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "TIR compatible game");
+ return;
+}
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h index f1d169f7..59454e90 100644 --- a/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h +++ b/FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h @@ -56,6 +56,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
bool FTIRCreateMapping(HANDLE handle);
diff --git a/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.cpp b/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.cpp index cbd568b0..70556835 100644 --- a/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.cpp +++ b/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.cpp @@ -172,6 +172,14 @@ bool FTNoIR_Protocol_FTN::checkServerInstallationOK( HANDLE handle ) return true;
}
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_FTN::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "FaceTrackNoIR");
+ return;
+}
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.h b/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.h index 22dfd748..5f8d6b10 100644 --- a/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.h +++ b/FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.h @@ -50,6 +50,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
THeadPoseData TestData;
diff --git a/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.cpp b/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.cpp index 31749b3d..2104c09f 100644 --- a/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.cpp +++ b/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.cpp @@ -40,6 +40,8 @@ FTNoIR_Protocol_MOUSE::FTNoIR_Protocol_MOUSE() prev_fMouse_X = 0.0f;
prev_fMouse_Y = 0.0f;
prev_fMouse_Wheel = 0.0f;
+ frame_delay = 0;
+
loadSettings();
}
@@ -217,16 +219,22 @@ float fMouse_Wheel; MouseStruct.mi.dx = scale2AnalogLimits(-1.0f * fMouse_X * mouse_X_factor, -180, 180);
MouseStruct.mi.dy = scale2AnalogLimits(fMouse_Y * mouse_Y_factor, -180, 180);
MouseStruct.mi.mouseData = mouse_Wheel_factor * (fMouse_Wheel - prev_fMouse_Wheel);
+
+ frame_delay = 9999; // Seems no problem with Absolute positioning
break;
case FTN_RELATIVE:
MouseStruct.mi.dwFlags = MOUSEEVENTF_MOVE | MOUSEEVENTF_WHEEL;
- MouseStruct.mi.dx = mouse_X_factor * (fMouse_X - prev_fMouse_X);
+ MouseStruct.mi.dx = -1.0f * mouse_X_factor * (fMouse_X - prev_fMouse_X);
MouseStruct.mi.dy = mouse_Y_factor * (fMouse_Y - prev_fMouse_Y);
- MouseStruct.mi.mouseData = mouse_Wheel_factor * (fMouse_Wheel - prev_fMouse_Wheel);
+ MouseStruct.mi.mouseData = - 1.0f * mouse_Wheel_factor * (fMouse_Wheel - prev_fMouse_Wheel);
+
+ frame_delay += 1; // Add 1 to the counter
+ qDebug() << "sendHeadposeToGame(): FTN_RELATIVE x = " << MouseStruct.mi.dx << ", y = " << MouseStruct.mi.dy;
break;
default:
+ Mouse_Style = FTN_ABSOLUTE; // Force to a valid value...
break;
}
@@ -234,13 +242,15 @@ float fMouse_Wheel; // Only send Input, when it has changed.
// This releases the Mouse, when tracking is stopped (for a while).
//
- if ((prev_fMouse_X != fMouse_X) || (prev_fMouse_Y != fMouse_Y) || (prev_fMouse_Wheel != fMouse_Wheel)) {
- SendInput(1, &MouseStruct, sizeof(MouseStruct));
- }
+ if (frame_delay > 10) {
+ if ((prev_fMouse_X != fMouse_X) || (prev_fMouse_Y != fMouse_Y) || (prev_fMouse_Wheel != fMouse_Wheel)) {
+ SendInput(1, &MouseStruct, sizeof(MouseStruct));
+ }
- prev_fMouse_X = fMouse_X;
- prev_fMouse_Y = fMouse_Y;
- prev_fMouse_Wheel = fMouse_Wheel;
+ prev_fMouse_X = fMouse_X;
+ prev_fMouse_Y = fMouse_Y;
+ prev_fMouse_Wheel = fMouse_Wheel;
+ }
}
//
@@ -252,6 +262,15 @@ bool FTNoIR_Protocol_MOUSE::checkServerInstallationOK( HANDLE handle ) return true;
}
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_MOUSE::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "Mouse");
+ return;
+}
+
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.h b/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.h index b53fb3e4..ce267d87 100644 --- a/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.h +++ b/FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.h @@ -54,7 +54,7 @@ enum FTN_AngleName { enum FTN_MouseStyle {
FTN_ABSOLUTE = 0,
- FTN_RELATIVE = 2
+ FTN_RELATIVE = 1
};
@@ -69,6 +69,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
HANDLE h;
@@ -86,6 +87,8 @@ private: float prev_fMouse_Wheel;
float mouse_Wheel_factor; // Sensitivity factor
+ int frame_delay; // Number of frames to delay SendInput (too fast, too furious?)
+
long scale2AnalogLimits( float x, float min_x, float max_x );
void loadSettings();
diff --git a/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp b/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp index a94680a2..8a092d2e 100644 --- a/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp +++ b/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp @@ -195,6 +195,15 @@ bool FTNoIR_Protocol_PPJOY::checkServerInstallationOK( HANDLE handle ) return true;
}
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_PPJOY::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "Virtual PPJoy joystick");
+ return;
+}
+
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.h b/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.h index 8333a2ef..d1cfa05d 100644 --- a/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.h +++ b/FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.h @@ -70,6 +70,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
HANDLE h;
diff --git a/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.cpp b/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.cpp index 014e896f..3b2e982b 100644 --- a/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.cpp +++ b/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.cpp @@ -363,6 +363,14 @@ void CALLBACK FTNoIR_Protocol_SC::processNextSimconnectEvent(SIMCONNECT_RECV* pD }
}
+//
+// Return a name, if present the name from the Game, that is connected...
+//
+void FTNoIR_Protocol_SC::getNameFromGame( char *dest )
+{
+ sprintf_s(dest, 99, "FSX");
+ return;
+}
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Protocol object.
diff --git a/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.h b/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.h index 46f1133b..1b0116e3 100644 --- a/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.h +++ b/FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.h @@ -87,6 +87,7 @@ public: bool checkServerInstallationOK( HANDLE handle );
void sendHeadposeToGame( T6DOF *headpose );
+ void getNameFromGame( char *dest ); // Take care dest can handle up to 100 chars...
private:
// Private properties
diff --git a/FTNoIR_Tracker_Base/ftnoir_tracker_sm_types.h b/FTNoIR_Tracker_Base/ftnoir_tracker_sm_types.h index 5f19f786..970d9fca 100644 --- a/FTNoIR_Tracker_Base/ftnoir_tracker_sm_types.h +++ b/FTNoIR_Tracker_Base/ftnoir_tracker_sm_types.h @@ -19,6 +19,8 @@ struct SMMemMap { TFaceData data;
HANDLE handle;
int state;
+ int par_val_int; // Value of parameter, indicated by 'command'
+ int par_val_float;
};
typedef SMMemMap * PSMMemMap;
@@ -26,5 +28,6 @@ enum FTNoIR_Tracker_Command { FT_SM_START = 10,
FT_SM_STOP = 20,
FT_SM_SHOW_CAM = 30,
+ FT_SM_SET_PAR_FILTER = 50,
FT_SM_EXIT = 100
};
diff --git a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp index 0998d90a..5cc8d885 100644 --- a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp +++ b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp @@ -293,7 +293,7 @@ void SMClientControls::Release() //
void SMClientControls::Initialize(QWidget *parent) {
- QPoint offsetpos(100, 100);
+ QPoint offsetpos(200, 200);
if (parent) {
this->move(parent->pos() + offsetpos);
}
diff --git a/FaceTrackNoIR.sln b/FaceTrackNoIR.sln index 3a1544f1..a152b815 100644 --- a/FaceTrackNoIR.sln +++ b/FaceTrackNoIR.sln @@ -1,8 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FaceTrackNoIR", "FaceTrackNoIR\FaceTrackNoIR.vcproj", "{9DCDB5B9-941E-42F7-AF76-DF794AA3C013}"
-EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "SetupFaceTrackNoIR", "SetupFaceTrackNoIR\SetupFaceTrackNoIR.vdproj", "{95D54F4D-F5E2-4DEC-B517-E32F34312C07}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FTNoIR_ProtocolTester", "FTNoIR_ProtocolTester\FTNoIR_ProtocolTester.vcproj", "{52D2A4B6-7D76-437B-AD7F-7CDB13F2D27C}"
@@ -31,16 +29,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FTNoIR_Protocol_FTN", "FTNo EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FTNoIR_Protocol_MOUSE", "FTNoIR_Protocol_MOUSE\FTNoIR_Protocol_MOUSE.vcproj", "{BD90CC3A-965C-4DAF-8D3D-8AABA455BA9E}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FTNoIR_Tracker_VISAGE", "FTNoIR_Tracker_VISAGE\FTNoIR_Tracker_VISAGE.vcproj", "{D8907D63-249C-49BC-9169-34C0C8F1BD54}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FaceTrackNoIR", "FaceTrackNoIR\FaceTrackNoIR.vcproj", "{9DCDB5B9-941E-42F7-AF76-DF794AA3C013}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Debug|Win32.ActiveCfg = Debug|Win32
- {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Debug|Win32.Build.0 = Debug|Win32
- {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Release|Win32.ActiveCfg = Release|Win32
- {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Release|Win32.Build.0 = Release|Win32
{95D54F4D-F5E2-4DEC-B517-E32F34312C07}.Debug|Win32.ActiveCfg = Debug
{95D54F4D-F5E2-4DEC-B517-E32F34312C07}.Release|Win32.ActiveCfg = Release
{52D2A4B6-7D76-437B-AD7F-7CDB13F2D27C}.Debug|Win32.ActiveCfg = Debug|Win32
@@ -94,6 +92,14 @@ Global {BD90CC3A-965C-4DAF-8D3D-8AABA455BA9E}.Debug|Win32.Build.0 = Debug|Win32
{BD90CC3A-965C-4DAF-8D3D-8AABA455BA9E}.Release|Win32.ActiveCfg = Release|Win32
{BD90CC3A-965C-4DAF-8D3D-8AABA455BA9E}.Release|Win32.Build.0 = Release|Win32
+ {D8907D63-249C-49BC-9169-34C0C8F1BD54}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D8907D63-249C-49BC-9169-34C0C8F1BD54}.Debug|Win32.Build.0 = Debug|Win32
+ {D8907D63-249C-49BC-9169-34C0C8F1BD54}.Release|Win32.ActiveCfg = Release|Win32
+ {D8907D63-249C-49BC-9169-34C0C8F1BD54}.Release|Win32.Build.0 = Release|Win32
+ {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Debug|Win32.Build.0 = Debug|Win32
+ {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Release|Win32.ActiveCfg = Release|Win32
+ {9DCDB5B9-941E-42F7-AF76-DF794AA3C013}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/FaceTrackNoIR.suo b/FaceTrackNoIR.suo Binary files differindex 0465c4d4..63083113 100644 --- a/FaceTrackNoIR.suo +++ b/FaceTrackNoIR.suo diff --git a/List of compatible games.xls b/List of compatible games.xls Binary files differindex c314351e..2939c072 100644 --- a/List of compatible games.xls +++ b/List of compatible games.xls diff --git a/List of compatible webcams.xls b/List of compatible webcams.xls Binary files differindex f197d8f6..06faec9f 100644 --- a/List of compatible webcams.xls +++ b/List of compatible webcams.xls |