Tizen 2.1 base
[apps/native/sample/FaceTracker.git] / project / inc / FaceThread.h
1 //
2 // Tizen C++ SDK
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://www.tizenopensource.org/license
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #ifndef _FACE_THREAD_H_
19 #define _FACE_THREAD_H_
20
21 #include <FBase.h>
22 #include <FUi.h>
23 #include <FApp.h>
24 #include <FGraphics.h>
25 #include <FMedia.h>
26 #include <FUix.h>
27 #include "FaceData.h"
28
29 enum RunMode
30 {
31         RUN_MODE_FACE_DETECTION,
32         RUN_MODE_FACE_TRACKING,
33 };
34
35 class FaceThread
36         : public Tizen::Base::Runtime::Thread
37 {
38
39 public:
40         FaceThread(void);
41         virtual ~FaceThread(void);
42         result Construct(void);
43
44         virtual bool OnStart(void);
45         virtual void OnStop(void);
46         virtual void OnUserEventReceivedN(RequestId requestId, Tizen::Base::Collection::IList *pArgs);
47
48         void SetFaceDetectData(Tizen::Uix::Vision::FaceDetector *pFD, Tizen::Uix::Vision::FaceRecognizer *pFR, Tizen::Uix::Vision::FaceRecognitionInfo *pFI, FaceData *pFaceData,  Tizen::Ui::Controls::Form* pForm);
49
50 private:
51         Tizen::Uix::Vision::FaceDetector* __pFaceDetector;
52         Tizen::Uix::Vision::FaceRecognizer* __pFaceReconizer;
53         Tizen::Uix::Vision::FaceRecognitionInfo* __pFInfoReference;
54         Tizen::Uix::Vision::FaceComponentsPosition* __pFaceComponents;
55         Tizen::Graphics::Rectangle* __pFaceRect;
56         Tizen::Ui::Controls::Form* __pFaceTrackerForm;
57         FaceData* __pFaceData;
58         Tizen::Uix::Vision::FaceBuffer* __pPrevFaceBuffer;
59         Tizen::Uix::Vision::FaceBuffer* __pCurFaceBuffer;
60 };
61
62 #endif /* _FACE_THREAD_H_ */