CarlifeLink.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #ifndef CARLIFELINK_H
  2. #define CARLIFELINK_H
  3. #include "IUserLinkPlayer.h"
  4. enum BTCodeKey
  5. {
  6. BT_CALLOUT_DTMF_0 = 0, ///< 0
  7. BT_CALLOUT_DTMF_1 = 1, ///< 1
  8. BT_CALLOUT_DTMF_2 = 2, ///< 2
  9. BT_CALLOUT_DTMF_3 = 3,
  10. BT_CALLOUT_DTMF_4 = 4,
  11. BT_CALLOUT_DTMF_5 = 5,
  12. BT_CALLOUT_DTMF_6 = 6,
  13. BT_CALLOUT_DTMF_7 = 7,
  14. BT_CALLOUT_DTMF_8 = 8,
  15. BT_CALLOUT_DTMF_9 = 9,
  16. BT_CALLOUT_DTMF_START = 10,
  17. BT_CALLOUT_DTMF_SHARP = 11,
  18. };
  19. typedef enum
  20. {
  21. KEYCODE_Selector_Next = 0x06, //切换到下一个焦点
  22. KEYCODE_Selector_Previous = 0x07, //切换到上一个焦点
  23. KEYCODE_Move_Left = 0x15, //21 切换到当前小区域的左边小区域中,焦点将切换到该小区域记录的最后一个焦点
  24. KEYCODE_Move_Right = 0x16, //22 切换到当前小区域的右边小区域中,焦点将切换到该小区域记录的最后一个焦点
  25. KEYCODE_Move_Up = 0x17, //23 切换到当前小区域的上边小区域中,焦点将切换到该小区域记录的最后一个焦点
  26. KEYCODE_Move_Down = 0x18, //24 切换到当前小区域的下边小区域中,焦点将切换到该小区域记录的最后一个焦点
  27. KEYCODE_Move_Up_Left = 0x19, //25 地图界面支持
  28. KEYCODE_Move_Up_Right = 0x1A, //26 地图界面支持
  29. KEYCODE_Move_Down_Left = 0x1B, //27 地图界面支持
  30. KEYCODE_Move_Down_Right = 0x1C, //28 地图界面支持
  31. }WheelCmd;
  32. typedef enum
  33. {
  34. KEYCODE_Home = 0x01,
  35. KEYCODE_Phone_Call = 0x02,
  36. KEYCODE_Phone_End,
  37. KEYCODE_HFP = 0x05,
  38. KEYCODE_Media = 0x09,
  39. KEYCODE_Navi = 0x0B,
  40. KEYCODE_Back = 0x0E,
  41. KEYCODE_Seek_Sub = 0x0F, //15 播放上一首
  42. KEYCODE_Seek_Add = 0x10, //16 播放下一首
  43. KEYCODE_Mute = 0x13, //19
  44. KEYCODE_OK = 0x14, //20
  45. KEYCODE_TEL = 0x1D,
  46. KEYCODE_MAIN = 0x1E,
  47. KEYCODE_Media_Start = 0x1F,
  48. KEYCODE_Media_Stop = 0x20,
  49. KEYCODE_VR_Start = 0x21,
  50. KEYCODE_VR_Stop = 0x22,
  51. }HardKeyCmd;
  52. class CarlifePlayer;
  53. class CarlifeLink : public IUserLinkPlayer
  54. {
  55. public:
  56. CarlifeLink();
  57. virtual ~CarlifeLink();
  58. #ifdef USE_CARLIFE
  59. void set_mac(string mac);
  60. protected:
  61. virtual bool init(LinkMode linkMode);
  62. virtual bool release();
  63. virtual bool start();
  64. virtual bool stop();
  65. virtual bool start_mirror();
  66. virtual bool stop_mirror();
  67. virtual bool set_background();
  68. virtual bool set_foreground();
  69. virtual bool get_audio_focus();
  70. virtual bool release_audio_focus();
  71. virtual void set_inserted(bool inserted, PhoneType phoneType);
  72. virtual void send_screen_size(int width, int height);
  73. virtual void record_audio_callback(unsigned char *data, int len);
  74. virtual void send_car_bluetooth(const string& name, const string& address, const string& pin);
  75. virtual void send_phone_bluetooth(const string& address){}
  76. virtual void send_car_wifi(WifiInfo& info){}
  77. virtual void send_touch(int x, int y, TouchCode touchCode);
  78. virtual void send_multi_touch(int x1, int y1, TouchCode touchCode1, int x2, int y2, TouchCode touchCode2){}
  79. virtual bool send_key(KeyCode keyCode);
  80. virtual bool send_wheel(WheelCode wheel, bool foucs);
  81. virtual bool send_night_mode(bool night);
  82. virtual bool send_right_hand_driver(bool right){}
  83. virtual bool open_page(AppPage appPage);
  84. virtual void request_status(RequestAppStatus requestAppStatus, void *reserved = nullptr);
  85. virtual void send_license(const string& license){}
  86. virtual void send_input_text(const string& text) {}
  87. virtual void send_input_selection(const int start, const int stop){}
  88. virtual void send_input_action(const int acionId, const int keyCode){}
  89. private:
  90. void bt_call_status(int status);
  91. void status_callback_func(int status, void* parameter);
  92. void video_start_callback_func(bool start, int width, int height, void* parameter);
  93. void video_callback_func(int width, int height, unsigned char* data, int length, void* parameter);
  94. void audio_start_callback_func(bool start, int type, int rate, int bit, int channel,void* parameter);
  95. void audio_callback_func(int type, unsigned char* data, int length, void* parameter);
  96. void phone_number_callback_func(string number, void* parameter);
  97. private:
  98. CarlifePlayer *m_pCarlifePlayer;
  99. bool mBRecorder;
  100. int m_src_x[2];
  101. int m_src_y[2];
  102. int m_old_src_x[2];
  103. int m_old_src_y[2];
  104. bool m_blongpress;
  105. string mPhoneNumber;
  106. PhoneType mPhoneType;
  107. #endif
  108. };
  109. #endif // CARLIFELINK_H