From 57b8e22873f804c831cb40d9bee1f75ff877c6a4 Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Thu, 13 Sep 2012 17:07:47 +0000 Subject: Class TrackerDll added, to get info about the Tracker git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@130 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h | 48 ++++++------- FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.vcproj | 4 ++ FTNoIR_Tracker_UDP/ftnoir_tracker_udp.cpp | 27 -------- FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dialog.cpp | 32 --------- FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dll.cpp | 85 ++++++++++++++++++++++++ 5 files changed, 110 insertions(+), 86 deletions(-) create mode 100644 FTNoIR_Tracker_UDP/ftnoir_tracker_udp_dll.cpp diff --git a/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h index 4cae5e62..10cccb08 100644 --- a/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h +++ b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h @@ -13,17 +13,12 @@ public: FTNoIR_Tracker(); ~FTNoIR_Tracker(); - void Release(); void Initialize( QFrame *videoframe ); void StartTracker( HWND parent_window ); void StopTracker( bool exit ); bool GiveHeadPoseData(THeadPoseData *data); void loadSettings(); - void getFullName(QString *strToBeFilled); - void getShortName(QString *strToBeFilled); - void getDescription(QString *strToBeFilled); - protected: void run(); // qthread override run method @@ -42,19 +37,7 @@ private: THeadPoseData newHeadPose; // Structure with new headpose - ////parameter list for the filter-function(s) - //enum - //{ - // kPortAddress=0, // Index in QList - // kNumFilterParameters // Indicate number of parameters used - //}; - //QList> parameterRange; - //QList parameterValueAsFloat; - float portAddress; // Port-number - QString trackerFullName; // Trackers' name and description - QString trackerShortName; - QString trackerDescription; }; // Widget that has controls for FTNoIR protocol client-settings. @@ -67,14 +50,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::UICFTNClientControls ui; void loadSettings(); @@ -83,14 +60,31 @@ private: /** helper **/ bool settingsDirty; - QString trackerFullName; // Trackers' name and description - QString trackerShortName; - QString trackerDescription; - private slots: void doOK(); void doCancel(); void settingChanged() { settingsDirty = true; }; }; +//******************************************************************************************************* +// 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_UDP/FTNoIR_Tracker_UDP.vcproj b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.vcproj index a1533b0a..b25303f4 100644 --- a/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.vcproj +++ b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.vcproj @@ -175,6 +175,10 @@ RelativePath=".\ftnoir_tracker_udp_dialog.cpp" > + + . * +* * +********************************************************************************/ +/* + 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_udp.h" +#include + +FTNoIR_TrackerDll::FTNoIR_TrackerDll() { + //populate the description strings + trackerFullName = "FaceTrackNoIR UDP"; + trackerShortName = "UDP"; + trackerDescription = "FaceTrackNoIR UDP"; +} + +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/FaceTrackNoIR.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