diff options
-rw-r--r-- | FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.h | 43 | ||||
-rw-r--r-- | FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.vcproj | 4 | ||||
-rw-r--r-- | FTNoIR_Tracker_FD/ftnoir_tracker_facedetect.cpp | 37 | ||||
-rw-r--r-- | FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dialog.cpp | 28 | ||||
-rw-r--r-- | FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dll.cpp | 85 |
5 files changed, 112 insertions, 85 deletions
diff --git a/FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.h b/FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.h index ddb9afde..01a39451 100644 --- a/FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.h +++ b/FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.h @@ -37,7 +37,6 @@ public: FTNoIR_Tracker();
~FTNoIR_Tracker();
- void Release();
void Initialize( QFrame *videoframe );
void StartTracker( HWND parent_window );
void StopTracker( bool exit );
@@ -47,10 +46,6 @@ public: bool notifyZeroed();
void refreshVideo();
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
-
private:
bool activep;
//QList<std::pair<float,float>> parameterRange;
@@ -61,11 +56,6 @@ private: PROCESS_INFORMATION procInfo;
VideoWidget* ctrl;
QFrame* qframe;
-
- QString trackerFullName; // Trackers' name and description
- QString trackerShortName;
- QString trackerDescription;
-
};
class TrackerControls: public QWidget, Ui::UICFDClientControls, public ITrackerDialog
@@ -79,11 +69,6 @@ public: void Initialize(QWidget *parent);
void NotifyZeroing();
- void getFullName(QString *strToBeFilled);
- void getShortName(QString *strToBeFilled);
- void getDescription(QString *strToBeFilled);
- void getIcon(QIcon *icon);
-
private:
Ui::UICFDClientControls ui;
void loadSettings();
@@ -93,10 +78,6 @@ private: HANDLE hMapFile, hMutex;
struct face_detect_shm* shm;
- QString trackerFullName; // Trackers' name and description
- QString trackerShortName;
- QString trackerDescription;
-
private slots:
void doOK();
void doCancel();
@@ -105,4 +86,26 @@ private slots: void doSetCameraId(int val);
void doSetVideoWidget(bool val);
signals:
-};
\ No newline at end of file +};
+
+//*******************************************************************************************************
+// 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_FD/FTNoIR_Tracker_FD.vcproj b/FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.vcproj index 27a31758..3c9f1fc0 100644 --- a/FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.vcproj +++ b/FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.vcproj @@ -175,6 +175,10 @@ RelativePath=".\ftnoir_tracker_facedetect_dialog.cpp"
>
</File>
+ <File
+ RelativePath=".\ftnoir_tracker_facedetect_dll.cpp"
+ >
+ </File>
</Filter>
<Filter
Name="Header Files"
diff --git a/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect.cpp b/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect.cpp index 7f1c1529..1602db85 100644 --- a/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect.cpp +++ b/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect.cpp @@ -63,14 +63,6 @@ void VideoWidget::paintEvent(QPaintEvent*) { FTNoIR_Tracker::FTNoIR_Tracker()
{
qDebug("making tracker FaceDetect");
- ////allocate memory for the parameters
- //parameterValueAsFloat.clear();
- //parameterRange.clear();
-
- //// Add the parameters to the list
- //parameterRange.append(std::pair<float,float>(1000.0f,9999.0f));
- //parameterValueAsFloat.append(0.0f);
- ////setParameterValue(kPortAddress,5551.0f);
hMutex = CreateMutex(NULL, false, fd_mutex_name);
hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(struct face_detect_shm), fd_shm_name);
@@ -80,12 +72,6 @@ FTNoIR_Tracker::FTNoIR_Tracker() procInfo.hProcess = INVALID_HANDLE_VALUE;
ctrl = NULL;
qframe = NULL;
-
- //populate the description strings
- trackerFullName = "faceDetect V1.0.0";
- trackerShortName = "faceDetect";
- trackerDescription = "Stans' faceDetect V1.0.0";
-
}
void FTNoIR_Tracker::TerminateTracker() {
@@ -108,12 +94,6 @@ FTNoIR_Tracker::~FTNoIR_Tracker() //CloseHandle(hMutex);
}
-void FTNoIR_Tracker::Release()
-{
- qDebug("FTNoIR_Tracker::Release says: Starting ");
- delete this;
-}
-
void FTNoIR_Tracker::Initialize( QFrame *videoframe )
{
qDebug("FTNoIR_Tracker::Initialize()");
@@ -212,23 +192,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_FD/ftnoir_tracker_facedetect_dialog.cpp b/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dialog.cpp index a29f5c28..3c080898 100644 --- a/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dialog.cpp +++ b/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dialog.cpp @@ -72,12 +72,6 @@ QWidget() QObject::connect(ui.redetect_ms, SIGNAL(valueChanged(int)), this, SLOT(doSetRedetectMs(int)));
QObject::connect(ui.cameraId, SIGNAL(valueChanged(int)), this, SLOT(doSetCameraId(int)));
QObject::connect(ui.videoWidget, SIGNAL(toggled(bool)), this, SLOT(doSetVideoWidget(bool)));
-
- //populate the description strings
- trackerFullName = "faceDetect V1.0.0";
- trackerShortName = "faceDetect";
- trackerDescription = "Stans' faceDetect V1.0.0";
-
}
void TrackerControls::save() {
@@ -171,28 +165,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/FaceDetect.ico");
-};
-
////////////////////////////////////////////////////////////////////////////////
// Factory function that creates instances if the Tracker-settings dialog object.
diff --git a/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dll.cpp b/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dll.cpp new file mode 100644 index 00000000..6bfa1284 --- /dev/null +++ b/FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_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_fd.h"
+#include <QDebug>
+
+FTNoIR_TrackerDll::FTNoIR_TrackerDll() {
+ //populate the description strings
+ trackerFullName = "faceDetect V1.0.0";
+ trackerShortName = "faceDetect";
+ trackerDescription = "Stans' faceDetect V1.0.0";
+}
+
+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/FaceDetect.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;
+}
|