From 7eeb8dfaede7bb54b37b8ea538135914a43ab011 Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Mon, 21 Mar 2011 21:32:13 +0000 Subject: New effort to embrace faceAPI 3.2.6 git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@54 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h | 11 ++-- FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj | 99 +++++++++++++++++++++++++++- FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp | 42 ++++++++++-- 3 files changed, 142 insertions(+), 10 deletions(-) (limited to 'FTNoIR_Tracker_SM') diff --git a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h index 12bfbe80..9af25800 100644 --- a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h +++ b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.h @@ -1,5 +1,6 @@ #include "..\ftnoir_tracker_base\ftnoir_tracker_base.h" #include "ui_FTNoIR_SMClientcontrols.h" +#include "mainwindow.h" #include "sm_api_qt.h" #include @@ -11,6 +12,7 @@ using namespace std; //using namespace sm::faceapi::samplecode; using namespace sm::faceapi; using namespace sm::faceapi::qt; +using namespace sm::faceapi::samplecode; class FTNoIR_Tracker_SM : public ITracker { @@ -19,8 +21,8 @@ public: ~FTNoIR_Tracker_SM(); void Release(); - void Initialize(); - void StartTracker(); + void Initialize( QFrame *videoframe ); + void StartTracker( HWND parent_window ); void StopTracker(); bool GiveHeadPoseData(THeadPoseData *data); // Returns true if confidence is good void loadSettings(); @@ -31,8 +33,9 @@ private: /** face api variables **/ APIScope *faceapi_scope; QSharedPointer _engine; - smEngineHandle _engine_handle; - + VideoDisplayWidget *_display; + QVBoxLayout *l; + MainWindow *main_window; //parameter list for the filter-function(s) enum { diff --git a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj index cf0cd64f..b15c259b 100644 --- a/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj +++ b/FTNoIR_Tracker_SM/FTNoIR_Tracker_SM.vcproj @@ -38,7 +38,7 @@ /> @@ -171,6 +171,10 @@ RelativePath=".\ftnoir_tracker_faceapi.cpp" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp index ee1b049d..f2f18877 100644 --- a/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp +++ b/FTNoIR_Tracker_SM/ftnoir_tracker_faceapi.cpp @@ -1,6 +1,9 @@ #include "ftnoir_tracker_sm.h" +#include "mainwindow.h" using namespace sm::faceapi; +using namespace sm::faceapi::qt; +using namespace sm::faceapi::samplecode; //using namespace sm::faceapi::qt; FTNoIR_Tracker_SM::FTNoIR_Tracker_SM() @@ -17,16 +20,29 @@ FTNoIR_Tracker_SM::FTNoIR_Tracker_SM() FTNoIR_Tracker_SM::~FTNoIR_Tracker_SM() { - _engine->stop(); - smAPIQuit(); + qDebug() << "stopTracker says: terminating"; + //if ( _display ) { + // _display->disconnect(); + // qDebug() << "stopTracker says: display disconnected"; + // delete _display; + // qDebug() << "stopTracker says: display deleted"; + // _display = 0; + // delete l; + // l = 0; + // qDebug() << "stopTracker says: l deleted"; + //} + + _engine->stop(); + smAPIQuit(); } void FTNoIR_Tracker_SM::Release() { + qDebug() << "FTNoIR_Tracker_SM::Release says: Starting "; delete this; } -void FTNoIR_Tracker_SM::Initialize() +void FTNoIR_Tracker_SM::Initialize( QFrame *videoframe ) { qDebug() << "FTNoIR_Tracker_SM::Initialize says: Starting "; loadSettings(); @@ -54,10 +70,27 @@ void FTNoIR_Tracker_SM::Initialize() QMessageBox::warning(0,"faceAPI Error",e.what(),QMessageBox::Ok,QMessageBox::NoButton); } + + + // Show the video widget + qDebug() << "FTNoIR_Tracker_SM::Initialize says: videoframe = " << videoframe; + + // QMainWindow derived class. See mainwindow.h + QSharedPointer camera; + main_window = new MainWindow(camera,_engine,0); + main_window->show(); + + //videoframe->show(); + //_display = new VideoDisplayWidget( _engine, videoframe, 0 ); + //l = new QVBoxLayout(videoframe); + //l->setMargin(0); + //l->setSpacing(0); + //l->addWidget(_display); + return; } -void FTNoIR_Tracker_SM::StartTracker() +void FTNoIR_Tracker_SM::StartTracker( HWND parent_window ) { // starts the faceapi engine @@ -75,6 +108,7 @@ void FTNoIR_Tracker_SM::StartTracker() void FTNoIR_Tracker_SM::StopTracker() { + qDebug() << "FTNoIR_Tracker_SM::StopTracker says: Starting "; // stops the faceapi engine _engine->stop(); return; -- cgit v1.2.3