Streamer.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * TI Voxel Lib component.
  3. *
  4. * Copyright (c) 2014 Texas Instruments Inc.
  5. */
  6. #ifndef VOXEL_STREAMER_H
  7. #define VOXEL_STREAMER_H
  8. #include "Device.h"
  9. #include "Frame.h"
  10. #include "VideoMode.h"
  11. #include "Timer.h"
  12. namespace Voxel
  13. {
  14. /**
  15. * \addtogroup IO
  16. * @{
  17. */
  18. class VOXEL_EXPORT Streamer
  19. {
  20. protected:
  21. DevicePtr _device;
  22. Timer _time;
  23. int _currentID = -1;
  24. TimeStampType _currentTimeStamp = 0;
  25. bool _isRunning = false;
  26. virtual bool _start() = 0;
  27. virtual bool _capture(RawDataFramePtr &p) = 0;
  28. virtual bool _stop() = 0;
  29. public:
  30. Streamer(DevicePtr device): _device(device) {}
  31. virtual ~Streamer();
  32. virtual bool isInitialized() = 0;
  33. virtual bool isRunning() { return _isRunning; }
  34. virtual bool start();
  35. virtual bool capture(RawDataFramePtr &p);
  36. virtual bool stop();
  37. virtual bool getSupportedVideoModes(Vector<VideoMode> &videoModes) = 0;
  38. virtual bool getCurrentVideoMode(VideoMode &videoMode) = 0;
  39. virtual bool setVideoMode(const VideoMode &videoMode) = 0;
  40. };
  41. /**
  42. * @}
  43. */
  44. }
  45. #endif // STREAMER_H