device.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #ifndef DEVICE_H
  2. #define DEVICE_H
  3. //#include "videodecode.h"
  4. #include <stdint.h>
  5. #include <string>
  6. #include "common.h"
  7. #include "stream.h"
  8. //#include "controller.h"
  9. using namespace std;
  10. class Server;
  11. class Stream;
  12. class Controller;
  13. class Device
  14. {
  15. public:
  16. struct DeviceParams {
  17. string recordFileName; // 视频录制文件名
  18. string serial; // 设备序列号
  19. unsigned short localPort; // reverse时本地监听端口
  20. unsigned short maxSize; // 视频分辨率
  21. unsigned int bitRate; // 视频比特率
  22. bool closeScreen; // 启动时自动息屏
  23. bool useReverse; // true:先使用adb reverse,失败后自动使用adb forward;false:直接使用adb forward
  24. bool display; // 是否显示画面(或者仅仅后台录制)
  25. string gameScript; // 游戏映射脚本
  26. };
  27. explicit Device(DeviceParams params);
  28. virtual ~Device();
  29. Controller *getController();
  30. Server *getServer();
  31. // VideoDecode *getDecoder() const {return m_decoder;}
  32. void setDeviceDisconnectCallback(void (*callback)(string ,void*), void* parameter);
  33. void setServerFinishedCallback(void (*callback)(void*), void* parameter);
  34. void SetVideoStartCallback(FUNCVIDEOSTART funcVideoStart);
  35. void SetVideoInfoCallback(FUNCVIDEOINFO funcVideoInfo);
  36. void startServer();
  37. void eventOperation();
  38. void onSendVertical(bool bVertical);
  39. private:
  40. void GrabFrameThread();
  41. static void *GrabFrameThreadFunc(void *parameter);
  42. void onVideoStartCallback(bool start, int width, int height);
  43. void onVideoInfoCallback(int width, int height, unsigned char* data, int length);
  44. static void server_start_result_callback_func(bool success,void* parameter);
  45. static void connect_to_result_callback_func(bool success, string deviceName, Size size, void* parameter);
  46. private:
  47. Server* m_server;
  48. Controller* m_controller;
  49. Stream* m_stream;
  50. FUNCVIDEOSTART mFuncVideoStart;
  51. FUNCVIDEOINFO mFuncVideoInfo;
  52. // VideoDecode *m_decoder;
  53. pthread_t mGrabFrameThread;
  54. // ui
  55. DeviceParams m_params;
  56. void (*m_device_disconnected_callback)(std::string ,void*);
  57. void (*m_server_finished_callback)(void*);
  58. void *m_parameter;
  59. };
  60. #endif // DEVICE_H