From 63ce1b5dc62e5c1a079f8a675c0a4371adb27d29 Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Sat, 12 Feb 2011 16:13:30 +0000 Subject: Displaying headpose-data seemed to cause crashes. Update is now done in FaceTrackNoIR.cpp, using a timer. git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@51 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h | 80 +++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h (limited to 'FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h') diff --git a/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h new file mode 100644 index 00000000..b3467341 --- /dev/null +++ b/FTNoIR_Tracker_UDP/FTNoIR_Tracker_UDP.h @@ -0,0 +1,80 @@ +#include "ftnoir_tracker_base.h" +#include "ui_FTNoIR_FTNClientcontrols.h" +#include +#include +#include +#include +#include "Windows.h" +#include "math.h" + +class FTNoIR_Tracker_UDP : public ITracker, QThread +{ +public: + FTNoIR_Tracker_UDP(); + ~FTNoIR_Tracker_UDP(); + + void Release(); + void Initialize(); + void StartTracker(); + void GiveHeadPoseData(THeadPoseData *data); + void loadSettings(); + + bool setParameterValue(const int index, const float newvalue); + +protected: + void run(); // qthread override run method + +private: + // Handles to neatly terminate thread... + HANDLE m_StopThread; + HANDLE m_WaitThread; + + // UDP socket-variables + QUdpSocket *inSocket; // Receive from ... + QUdpSocket *outSocket; // Send to ... + QHostAddress destIP; // Destination IP-address + int destPort; // Destination port-number + QHostAddress srcIP; // Source IP-address + int srcPort; // Source port-number + + 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; + +}; + +// Widget that has controls for FTNoIR protocol client-settings. +class FTNClientControls: public QWidget, Ui::UICFTNClientControls, public ITrackerDialog +{ + Q_OBJECT +public: + + explicit FTNClientControls( QWidget *parent=0, Qt::WindowFlags f=0 ); + virtual ~FTNClientControls(); + void showEvent ( QShowEvent * event ); + + void Release(); // Member functions which are accessible from outside the DLL + void Initialize(QWidget *parent); + +private: + Ui::UICFTNClientControls ui; + void loadSettings(); + void save(); + + /** helper **/ + bool settingsDirty; + +private slots: + void doOK(); + void doCancel(); + void settingChanged() { settingsDirty = true; }; +}; + + -- cgit v1.2.3