summaryrefslogtreecommitdiffhomepage
path: root/FTNoIR_Tracker_SM
diff options
context:
space:
mode:
authorWim Vriend <facetracknoir@gmail.com>2012-09-13 17:07:07 +0000
committerWim Vriend <facetracknoir@gmail.com>2012-09-13 17:07:07 +0000
commitdf690e02ea1bdfa06e735fd1da3a94fdee93714a (patch)
treea04fa53ea5d7d421fdedd684bf0b8e676840c2ba /FTNoIR_Tracker_SM
parentc26901009a23c3b7df5197b3b326cb14d12e0d7f (diff)
Class TrackerDll added, to get info about the Tracker
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@129 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
Diffstat (limited to 'FTNoIR_Tracker_SM')
-rw-r--r--FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h41
-rw-r--r--FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj4
-rw-r--r--FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp31
-rw-r--r--FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dialog.cpp33
-rw-r--r--FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dll.cpp85
5 files changed, 110 insertions, 84 deletions
diff --git a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h
index a4933c35..26d9c0ca 100644
--- a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h
+++ b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h
@@ -40,7 +40,6 @@ public:
FTNoIR_Tracker();
~FTNoIR_Tracker();
- void Release();
void Initialize( QFrame *videoframe );
void StartTracker( HWND parent_window );
void StopTracker( bool exit );
@@ -48,10 +47,6 @@ public:
void loadSettings();
bool SMCreateMapping();
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
-
private:
//
// global variables
@@ -60,11 +55,6 @@ private:
SMMemMap *pMemData;
HANDLE hSMMutex;
QProcess *faceAPI;
-
- QString trackerFullName; // Trackers' name and description
- QString trackerShortName;
- QString trackerDescription;
-
};
// Widget that has controls for SMoIR protocol client-settings.
@@ -77,14 +67,8 @@ public:
virtual ~TrackerControls();
void showEvent ( QShowEvent * event );
- void Release(); // Member functions which are accessible from outside the DLL
void Initialize(QWidget *parent);
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
- void getIcon(QIcon *icon);
-
private:
Ui::UICSMClientControls ui;
void loadSettings();
@@ -106,10 +90,6 @@ private:
smEngineHandle *engine_handle;
QTimer *timUpdateSettings; // Timer to display current settings
- QString trackerFullName; // Trackers' name and description
- QString trackerShortName;
- QString trackerDescription;
-
private slots:
void doOK();
void doCancel();
@@ -134,3 +114,24 @@ signals:
};
+//*******************************************************************************************************
+// FaceTrackNoIR Tracker DLL. Functions used to get general info on the Tracker
+//*******************************************************************************************************
+class FTNoIR_TrackerDll : public ITrackerDll
+{
+public:
+ FTNoIR_TrackerDll();
+ ~FTNoIR_TrackerDll();
+
+ void Initialize();
+
+ void getFullName(QString *strToBeFilled);
+ void getShortName(QString *strToBeFilled);
+ void getDescription(QString *strToBeFilled);
+ void getIcon(QIcon *icon);
+
+private:
+ QString trackerFullName; // Trackers' name and description
+ QString trackerShortName;
+ QString trackerDescription;
+};
diff --git a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj
index b5a3e5f4..9919732b 100644
--- a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj
+++ b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj
@@ -175,6 +175,10 @@
RelativePath=".\ftnoir_tracker_faceapi_dialog.cpp"
>
</File>
+ <File
+ RelativePath=".\ftnoir_tracker_faceapi_dll.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Header Files"
diff --git a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp
index 14dd1d96..75c63b74 100644
--- a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp
+++ b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp
@@ -27,10 +27,6 @@
FTNoIR_Tracker::FTNoIR_Tracker()
{
- //populate the description strings
- trackerFullName = "faceAPI V3.2.6";
- trackerShortName = "faceAPI";
- trackerDescription = "SeeingMachines faceAPI V3.2.6";
}
FTNoIR_Tracker::~FTNoIR_Tracker()
@@ -46,16 +42,6 @@ FTNoIR_Tracker::~FTNoIR_Tracker()
hSMMemMap = 0;
}
-void FTNoIR_Tracker::Release()
-{
- qDebug() << "FTNoIR_Tracker::Release says: Starting ";
-
- if ( pMemData != NULL ) {
- pMemData->command = FT_SM_EXIT; // Issue 'exit' command
- }
- delete this;
-}
-
void FTNoIR_Tracker::Initialize( QFrame *videoframe )
{
qDebug() << "FTNoIR_Tracker::Initialize says: Starting ";
@@ -142,23 +128,6 @@ bool FTNoIR_Tracker::GiveHeadPoseData(THeadPoseData *data)
return false;
}
-void FTNoIR_Tracker::getFullName(QString *strToBeFilled)
-{
- *strToBeFilled = trackerFullName;
-};
-
-
-void FTNoIR_Tracker::getShortName(QString *strToBeFilled)
-{
- *strToBeFilled = trackerShortName;
-};
-
-
-void FTNoIR_Tracker::getDescription(QString *strToBeFilled)
-{
- *strToBeFilled = trackerDescription;
-};
-
//
// Load the current Settings from the currently 'active' INI-file.
//
diff --git a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dialog.cpp b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dialog.cpp
index a0c0ebce..87c01b9c 100644
--- a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dialog.cpp
+++ b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dialog.cpp
@@ -56,11 +56,6 @@ QWidget()
QMessageBox::warning(0,"FaceTrackNoIR Error","Memory mapping not created!",QMessageBox::Ok,QMessageBox::NoButton);
}
- //populate the description strings
- trackerFullName = "faceAPI V3.2.6";
- trackerShortName = "faceAPI";
- trackerDescription = "SeeingMachines faceAPI V3.2.6";
-
// Load the settings from the current .INI-file
loadSettings();
@@ -79,11 +74,6 @@ TrackerControls::~TrackerControls() {
qDebug() << "~TrackerControls() says: started";
}
-void TrackerControls::Release()
-{
- delete this;
-}
-
//
// Initialize tracker-client-dialog
//
@@ -142,29 +132,6 @@ void TrackerControls::doCancel() {
}
}
-
-void TrackerControls::getFullName(QString *strToBeFilled)
-{
- *strToBeFilled = trackerFullName;
-};
-
-
-void TrackerControls::getShortName(QString *strToBeFilled)
-{
- *strToBeFilled = trackerShortName;
-};
-
-
-void TrackerControls::getDescription(QString *strToBeFilled)
-{
- *strToBeFilled = trackerDescription;
-};
-
-void TrackerControls::getIcon(QIcon *icon)
-{
- *icon = QIcon(":/images/SeeingMachines.ico");
-};
-
//
// Load the current Settings from the currently 'active' INI-file.
//
diff --git a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dll.cpp b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dll.cpp
new file mode 100644
index 00000000..0b77142b
--- /dev/null
+++ b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi_dll.cpp
@@ -0,0 +1,85 @@
+/********************************************************************************
+* 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 TrackerDll class solves this.
+ The functions to get the name(s) and icon were removed from the two other classes.
+*/
+#include "ftnoir_tracker_sm.h"
+#include <QDebug>
+
+FTNoIR_TrackerDll::FTNoIR_TrackerDll() {
+ //populate the description strings
+ trackerFullName = "faceAPI V3.2.6";
+ trackerShortName = "faceAPI";
+ trackerDescription = "SeeingMachines faceAPI V3.2.6";
+}
+
+FTNoIR_TrackerDll::~FTNoIR_TrackerDll()
+{
+
+}
+
+void FTNoIR_TrackerDll::Initialize()
+{
+ return;
+}
+
+void FTNoIR_TrackerDll::getFullName(QString *strToBeFilled)
+{
+ *strToBeFilled = trackerFullName;
+};
+
+void FTNoIR_TrackerDll::getShortName(QString *strToBeFilled)
+{
+ *strToBeFilled = trackerShortName;
+};
+
+void FTNoIR_TrackerDll::getDescription(QString *strToBeFilled)
+{
+ *strToBeFilled = trackerDescription;
+};
+
+void FTNoIR_TrackerDll::getIcon(QIcon *icon)
+{
+ *icon = QIcon(":/images/SeeingMachines.ico");
+};
+
+////////////////////////////////////////////////////////////////////////////////
+// Factory function that creates instances if the Tracker object.
+
+// Export both decorated and undecorated names.
+// GetTrackerDll - Undecorated name, which can be easily used with GetProcAddress
+// Win32 API function.
+// _GetTrackerDll@0 - Common name decoration for __stdcall functions in C language.
+#pragma comment(linker, "/export:GetTrackerDll=_GetTrackerDll@0")
+
+FTNOIR_TRACKER_BASE_EXPORT TRACKERDLLHANDLE __stdcall GetTrackerDll()
+{
+ return new FTNoIR_TrackerDll;
+}