From c26901009a23c3b7df5197b3b326cb14d12e0d7f Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Thu, 13 Sep 2012 17:06:22 +0000 Subject: Class TrackerDll added, to get info about the Tracker git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@128 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.h | 43 ++++++----- FTNoIR_Tracker_FD/FTNoIR_Tracker_FD.vcproj | 4 + FTNoIR_Tracker_FD/ftnoir_tracker_facedetect.cpp | 37 ---------- .../ftnoir_tracker_facedetect_dialog.cpp | 28 ------- .../ftnoir_tracker_facedetect_dll.cpp | 85 ++++++++++++++++++++++ 5 files changed, 112 insertions(+), 85 deletions(-) create mode 100644 FTNoIR_Tracker_FD/ftnoir_tracker_facedetect_dll.cpp (limited to 'FTNoIR_Tracker_FD') 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> 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" > + + (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 . * +* * +********************************************************************************/ +/* + 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 + +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; +} -- cgit v1.2.3