TUCameraDrawBuffer.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using System.Runtime.InteropServices;
  3. using TUCAMAPI;
  4. namespace TUCamera
  5. {
  6. public class TUCameraDrawBuffer : TUCameraIFrameProcess
  7. {
  8. private TUCamera m_camera;
  9. private FrameProcesserState m_state = FrameProcesserState.STOP;
  10. private object lockObj = new object();
  11. /// <summary>
  12. /// 预览
  13. /// </summary>
  14. /// <param name="camera">相机</param>
  15. public TUCameraDrawBuffer(TUCamera camera)
  16. {
  17. m_camera = camera;
  18. }
  19. public void DoProcess(ref TUCAM_FRAME frame)
  20. {
  21. if (m_state != FrameProcesserState.PLAY)
  22. {
  23. return;
  24. }
  25. //Console.WriteLine("返回buf");
  26. m_camera.CallbackDraw(frame, lockObj);
  27. //Console.WriteLine("返回buf结束");
  28. }
  29. public void Stop()
  30. {
  31. Console.WriteLine("预览------结束");
  32. m_state = FrameProcesserState.STOP;
  33. }
  34. public void Start()
  35. {
  36. Console.WriteLine("预览------开始");
  37. m_state = FrameProcesserState.PLAY;
  38. }
  39. public void Pause()
  40. {
  41. m_state = FrameProcesserState.PAUSE;
  42. }
  43. public void Resume()
  44. {
  45. m_state = FrameProcesserState.PLAY;
  46. }
  47. public FrameProcesserState GetStatus()
  48. {
  49. return m_state;
  50. }
  51. }
  52. }