From aa066bdd4622d4f6824fee864f6be6806813f04d Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Fri, 30 Oct 2015 07:37:41 +0100 Subject: move to subdirectory-based build system Closes #224 --- tracker-ht/ftnoir_tracker_ht.h | 90 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 tracker-ht/ftnoir_tracker_ht.h (limited to 'tracker-ht/ftnoir_tracker_ht.h') diff --git a/tracker-ht/ftnoir_tracker_ht.h b/tracker-ht/ftnoir_tracker_ht.h new file mode 100644 index 00000000..1e364456 --- /dev/null +++ b/tracker-ht/ftnoir_tracker_ht.h @@ -0,0 +1,90 @@ +/* Copyright (c) 2013 Stanislaw Halik + * + * 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. + */ + +#pragma once + +#include "headtracker-ftnoir.h" +#include "ui_ht-trackercontrols.h" +#include "ht_video_widget.h" +#include "opentrack-compat/shm.h" +#include +#include "opentrack/options.hpp" +#include "opentrack/plugin-api.hpp" +#include "opentrack/opencv-camera-dialog.hpp" + +#include +#include +#include +#include +#include + +using namespace options; + +struct settings : opts { + value fov; + value camera_name; + value fps, resolution; + settings() : + opts("HT-Tracker"), + fov(b, "fov", 56), + camera_name(b, "camera-name", ""), + fps(b, "fps", 0), + resolution(b, "resolution", 0) + {} +}; + +class Tracker : public QThread, public ITracker +{ + Q_OBJECT +public: + Tracker(); + ~Tracker() override; + void run() override; + void start_tracker(QFrame* frame) override; + void data(double *data) override; + void load_settings(ht_config_t* config); + headtracker_t* ht; + QMutex camera_mtx; +private: + double ypr[6]; + settings s; + ht_config_t conf; + HTVideoWidget* videoWidget; + QHBoxLayout* layout; + QMutex ypr_mtx, frame_mtx; + ht_video_t frame; + volatile bool should_stop; +}; + +class TrackerControls : public ITrackerDialog, protected camera_dialog +{ + Q_OBJECT +public: + TrackerControls(); + void register_tracker(ITracker * t) override + { + tracker = static_cast(t); + } + void unregister_tracker() override + { + tracker = nullptr; + } +private: + Ui::Form ui; + settings s; + Tracker* tracker; +private slots: + void doOK(); + void doCancel(); + void camera_settings(); +}; + +class TrackerDll : public Metadata +{ + QString name() { return QString("ht -- face tracker"); } + QIcon icon() { return QIcon(":/images/ht.png"); } +}; -- cgit v1.2.3