usbmanager.h 1008 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef USBMANAGER_H
  2. #define USBMANAGER_H
  3. #include <stdint.h>
  4. #define UEVENT_BUFFER_SIZE 2048
  5. #define PATH_MAX 4096
  6. #define KEYVALLEN 256
  7. typedef struct __usb_info
  8. {
  9. uint16_t idVendor;
  10. uint16_t idProduct;
  11. uint8_t path[1024];
  12. uint8_t inserted;
  13. }usb_info;
  14. class UsbManager
  15. {
  16. public:
  17. explicit UsbManager();
  18. public:
  19. //initialize thread
  20. bool usb_reader_thread();
  21. void SetInsertPath(char *pBuffer);
  22. void setCallback(void (*callback)(int,int,int, void*), void *parameter);
  23. void change_otg();
  24. void change_device();
  25. private:
  26. void usb_monitor();
  27. void parse_usb_info(char *buf);
  28. void inserted_info(int type, int vid);
  29. static void* connect_thread_func(void *me);
  30. private:
  31. void* m_parameter;
  32. bool m_binserted; //检测到设备
  33. void (*m_callback)(int,int, int, void *);
  34. int m_carplay_usb_idx;
  35. usb_info m_usb_info;
  36. char m_szUsbPath[PATH_MAX];
  37. char m_szRebootInsert[PATH_MAX];
  38. };
  39. #endif // USBMANAGER_H