#ifndef _H_VIDEODEV_SIMULATION_H_ #define _H_VIDEODEV_SIMULATION_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "convert.h" #include "gui.h" #include "videodev.h" struct SimAxisCtl { int active; double v; double defLen; double defAngle; }; class Simulation { private: int w; int h; float posX; float posY; float dAngle; float dLen; int running; struct SimAxisCtl axis[2]; GMutex mutex; public: Simulation(); ~Simulation(); void GetPos (int *nx, int *ny); void ThreadProcess(); void Start(); void Stop(); void Reset(); void AxisSetValue(int a, double v); void AxisStop(); void SetResolution (int w, int h); void LockMutex() { g_mutex_lock(&mutex); }; void UnLockMutex() { g_mutex_unlock(&mutex); }; }; class VideoDev_Simulation: public VideoDev { private: struct timeval lastframetv; unsigned char *inframe; ConvertData cdata; GThread *simulation_thread; int Grab(VideoFrame *vf); int Open(); int Close(); int CaptureStart(); int CaptureStop(); int SetDevCtrl(unsigned int id, int value); int GetDevCtrl(unsigned int id, int *value); public: VideoDev_Simulation(); ~VideoDev_Simulation(); int GetDeviceList(std::list *list); int GetDeviceFormats(string device, std::list *formats) { return VDEV_STATUS_OK; }; int GetDeviceResolutions(string device, std::list *formats) { return VDEV_STATUS_OK; }; }; #endif