#include<set>
#include "Tracker.h"
#include "Detector.h"
+#include "MultiTracker.h"
+#include "VideoReader.h"
+#include "SharedPtr.h"
namespace suanzi{
class EngineObserver;
+TK_DECLARE_PTR(Engine);
+
class Engine
{
public:
- static Engine* create();
+ static EnginePtr create();
void destroy();
+ virtual ~Engine();
+
virtual void start();
void addObserver(EngineObserver* o);
- void setVideoSrc(const std::string& url);
+ void setVideoSrc(VideoSrcType type, const std::string& url);
private:
Engine();
- virtual ~Engine();
- Tracker* tracker;
- Detector* detector;
+ void run();
+ DetectorPtr detector;
+ MultiTrackerPtr multiTracker;
std::set<EngineObserver *> observer_list;
- std::string videoSrc;
+ //std::string videoSrc;
+ VideoReaderPtr reader;
};
struct Person