summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorWim Vriend <facetracknoir@gmail.com>2011-06-04 12:37:46 +0000
committerWim Vriend <facetracknoir@gmail.com>2011-06-04 12:37:46 +0000
commit010d82e9392bd2fb5cafe6fbae03c9cdc301a2f8 (patch)
treeced3d8e7139cdc2b1b0871731cf82ab69e7a801b
parent555a75bf6740d66857f8b8dee1b30a0a10d8f2db (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
-rw-r--r--FTNoIR_Protocol_Base/ftnoir_protocol_base.h1
-rw-r--r--FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp8
-rw-r--r--FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h1
-rw-r--r--FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.cpp11
-rw-r--r--FTNoIR_Protocol_FSUIPC/FTNoIR_Protocol_FSUIPC.h1
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.cpp57
-rw-r--r--FTNoIR_Protocol_FT/FTNoIR_Protocol_FT.h4
-rw-r--r--FTNoIR_Protocol_FT/FTTypes.h5
-rw-r--r--FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.cpp8
-rw-r--r--FTNoIR_Protocol_FTIR/FTNoIR_Protocol_FTIR.h1
-rw-r--r--FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.cpp8
-rw-r--r--FTNoIR_Protocol_FTN/FTNoIR_Protocol_FTN.h1
-rw-r--r--FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.cpp35
-rw-r--r--FTNoIR_Protocol_MOUSE/FTNoIR_Protocol_MOUSE.h5
-rw-r--r--FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.cpp9
-rw-r--r--FTNoIR_Protocol_PPJOY/FTNoIR_Protocol_PPJOY.h1
-rw-r--r--FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.cpp8
-rw-r--r--FTNoIR_Protocol_SC/FTNoIR_Protocol_SC.h1
-rw-r--r--FTNoIR_Tracker_Base/ftnoir_tracker_sm_types.h3
-rw-r--r--FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp2
-rw-r--r--FaceTrackNoIR.sln18
-rw-r--r--FaceTrackNoIR.suobin395776 -> 417792 bytes
-rw-r--r--List of compatible games.xlsbin29184 -> 29696 bytes
-rw-r--r--List of compatible webcams.xlsbin21504 -> 22016 bytes
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
index 0465c4d4..63083113 100644
--- a/FaceTrackNoIR.suo
+++ b/FaceTrackNoIR.suo
Binary files differ
diff --git a/List of compatible games.xls b/List of compatible games.xls
index c314351e..2939c072 100644
--- a/List of compatible games.xls
+++ b/List of compatible games.xls
Binary files differ
diff --git a/List of compatible webcams.xls b/List of compatible webcams.xls
index f197d8f6..06faec9f 100644
--- a/List of compatible webcams.xls
+++ b/List of compatible webcams.xls
Binary files differ