summaryrefslogtreecommitdiffhomepage
path: root/FTNoIR_Tracker_Base
diff options
context:
space:
mode:
authorWim Vriend <facetracknoir@gmail.com>2012-09-13 17:05:39 +0000
committerWim Vriend <facetracknoir@gmail.com>2012-09-13 17:05:39 +0000
commit4b27a934f41d5d978b51ba6e94f2440ca403cb9c (patch)
tree3dfc13bb13f44fc3d02af625253782cb481c31ff /FTNoIR_Tracker_Base
parent81e8f7e500bcbeb34f7844349800887eabcde305 (diff)
Class TrackerDll added, to get info about the Tracker
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@127 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
Diffstat (limited to 'FTNoIR_Tracker_Base')
-rw-r--r--FTNoIR_Tracker_Base/ftnoir_tracker_base.h45
1 files changed, 36 insertions, 9 deletions
diff --git a/FTNoIR_Tracker_Base/ftnoir_tracker_base.h b/FTNoIR_Tracker_Base/ftnoir_tracker_base.h
index 022bf2e3..8bcc3f38 100644
--- a/FTNoIR_Tracker_Base/ftnoir_tracker_base.h
+++ b/FTNoIR_Tracker_Base/ftnoir_tracker_base.h
@@ -24,6 +24,7 @@
*********************************************************************************/
/*
Modifications (last one on top):
+ 20120009 - WVR: Removed AutoClosePtr (seemed like it didn't work OK)
20110415 - WVR: Added overloaded operator - and -=
*/
#ifndef FTNOIR_TRACKER_BASE_H
@@ -48,9 +49,9 @@ struct ITracker
virtual void StopTracker(bool exit) = 0;
virtual bool GiveHeadPoseData(THeadPoseData *data) = 0;
- virtual void getFullName(QString *strToBeFilled) = 0;
- virtual void getShortName(QString *strToBeFilled) = 0;
- virtual void getDescription(QString *strToBeFilled) = 0;
+ //virtual void getFullName(QString *strToBeFilled) = 0;
+ //virtual void getShortName(QString *strToBeFilled) = 0;
+ //virtual void getDescription(QString *strToBeFilled) = 0;
virtual bool notifyZeroed() {
return false;
@@ -58,7 +59,7 @@ struct ITracker
virtual void refreshVideo() {}
};
-// Handle type. In C++ language the iterface type is used.
+// Handle type. In C++ language the interface type is used.
typedef ITracker* TRACKERHANDLE;
////////////////////////////////////////////////////////////////////////////////
@@ -85,13 +86,13 @@ GetTracker(
// Instances are obtained via factory function.
struct ITrackerDialog
{
- virtual void Release() = 0; // Member required to enable Auto-remove
+// virtual void Release() = 0; // Member required to enable Auto-remove
virtual void Initialize(QWidget *parent) = 0;
- virtual void getFullName(QString *strToBeFilled) = 0;
- virtual void getShortName(QString *strToBeFilled) = 0;
- virtual void getDescription(QString *strToBeFilled) = 0;
- virtual void getIcon(QIcon *icon) = 0;
+ //virtual void getFullName(QString *strToBeFilled) = 0;
+ //virtual void getShortName(QString *strToBeFilled) = 0;
+ //virtual void getDescription(QString *strToBeFilled) = 0;
+ //virtual void getIcon(QIcon *icon) = 0;
};
// Handle type. In C++ language the iterface type is used.
@@ -104,5 +105,31 @@ TRACKERDIALOGHANDLE
__stdcall
GetTrackerDialog(void);
+// COM-Like abstract interface.
+// This interface doesn't require __declspec(dllexport/dllimport) specifier.
+// Method calls are dispatched via virtual table.
+// Any C++ compiler can use it.
+// Instances are obtained via factory function.
+struct ITrackerDll
+{
+// virtual void Release() = 0; // Member required to enable Auto-remove
+ virtual void Initialize() = 0;
+
+ virtual void getFullName(QString *strToBeFilled) = 0;
+ virtual void getShortName(QString *strToBeFilled) = 0;
+ virtual void getDescription(QString *strToBeFilled) = 0;
+ virtual void getIcon(QIcon *icon) = 0;
+};
+
+// Handle type. In C++ language the interface type is used.
+typedef ITrackerDll* TRACKERDLLHANDLE;
+
+// Factory function that creates instances of the Tracker object.
+EXTERN_C
+FTNOIR_TRACKER_BASE_EXPORT
+TRACKERDLLHANDLE
+__stdcall
+GetTrackerDll(void);
+
#endif // FTNOIR_TRACKER_BASE_H