9 #include "MultiTracker.h"
10 #include "VideoReader.h"
11 #include "SharedPtr.h"
12 #include "WorkerThread.h"
18 TK_DECLARE_PTR(Engine);
19 TK_DECLARE_PTR(MultiTracker);
26 static EnginePtr create();
31 //virtual void getCurrentCount();
32 // virtual void capture(bool bb = false);
33 void addObserver(EngineObserver* o);
34 void setVideoSrc(VideoSrcType type, const std::string& url);
35 // stream the video source as http, return the url
36 std::string setPreview(bool isPreview, bool showBB = false){return "";}
39 friend class MultiTracker;
40 void onPersonsIn(const std::vector<Person>& p);
41 void onPersonsOut(const std::vector<Person>& p);
46 WorkerThread eventThread {"EventThread"};
48 MultiTrackerPtr multiTracker;
49 std::set<EngineObserver *> observer_list;
50 VideoReaderPtr reader;
70 unsigned long id = 0x001;
71 Gender gender = Female;
74 std::string ageToString (Ages age) const {
76 case Kid: return "Kid";
77 case Teenager: return "Teenager";
82 std::string toString() const {
84 ss << "Person: id=" << id << ". Gender:" << (gender == Gender::Male ? "Male" : "Female" ) <<
85 ". Age: " << ageToString(age);
93 virtual void onPersonsIn(const std::vector<Person>& p) = 0;
94 virtual void onPersonsOut(const std::vector<Person>& p) = 0;
99 #endif /* _ENGINE_H_ */