diff options
Diffstat (limited to 'ftnoir_tracker_ht/xxx_ftnoir_tracker_ht.h')
-rw-r--r-- | ftnoir_tracker_ht/xxx_ftnoir_tracker_ht.h | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/ftnoir_tracker_ht/xxx_ftnoir_tracker_ht.h b/ftnoir_tracker_ht/xxx_ftnoir_tracker_ht.h new file mode 100644 index 00000000..1a449dca --- /dev/null +++ b/ftnoir_tracker_ht/xxx_ftnoir_tracker_ht.h @@ -0,0 +1,80 @@ +/* Copyright (c) 2013 Stanislaw Halik <sthalik@misaki.pl> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + */ + +#ifndef FTNOIR_TRACKER_HT_H +#define FTNOIR_TRACKER_HT_H + +#include "stdafx.h" +#include "../ftnoir_tracker_base/ftnoir_tracker_base.h" +#include "headtracker-ftnoir.h" +#include "ui_trackercontrols.h" +#include "video_widget.h" +#include "../compat/compat.h" +#include <QObject> +#include <QTimer> + +class Tracker : public QObject, public ITracker +{ + Q_OBJECT +public: + Tracker(); + ~Tracker(); + void StartTracker(QFrame* frame); + bool GiveHeadPoseData(THeadPoseData *data); + bool enableTX, enableTY, enableTZ, enableRX, enableRY, enableRZ; + ht_shm_t* shm; + bool NeedsTimeToFinish() { + return true; + } + void WaitForExit() { + if (shm) { + shm->terminate = true; + subprocess.waitForFinished(5000); + } + subprocess.kill(); + } +private: + QTimer timer; + PortableLockedShm lck_shm; + QProcess subprocess; + VideoWidget* videoWidget; + QHBoxLayout* layout; + volatile bool fresh; +private slots: + void paint_widget(); +}; + +// Widget that has controls for FTNoIR protocol client-settings. +class TrackerControls : public QWidget, public ITrackerDialog +{ + Q_OBJECT +public: + + explicit TrackerControls(); + virtual ~TrackerControls(); + void showEvent ( QShowEvent * event ); + + void Initialize(QWidget *parent); + void registerTracker(ITracker *tracker) {}; + void unRegisterTracker() {}; + +private: + Ui::Form ui; + void loadSettings(); + void save(); + bool settingsDirty; + +private slots: + void doOK(); + void doCancel(); + void settingChanged() { settingsDirty = true; }; + void settingChanged(int) { settingsDirty = true; }; + void settingChanged(double) { settingsDirty = true; }; +}; + +#endif + |