umf_ir.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #ifndef _IR_H_
  2. #define _IR_H_
  3. #include "types.h"
  4. #include "drv_types.h"
  5. #ifndef _CCOPTS_
  6. #include <sys/types.h>
  7. #endif
  8. #include "Customization.h"
  9. #define IRRECEIVEWAITTIME 100000000
  10. #define IR_INVALID_VALUE 0x100 /**<IR Invalid Value */
  11. #define IR_EVENT_REPEAT_TYPE (0x80000000)
  12. #define KEYPAD_EVENT_REPEAT_TYPE (0x40000000)
  13. #define IR_EVENT_REPEAT_END (0x20000000)
  14. #define KEYPAD_EVENT_REPEAT_END (0x10000000)
  15. #define IR_EVENT_SINGLE_END (0x08000000)
  16. #define CUS_CODE_COUNT 10
  17. #define IR_KEY_NUMBER_MAX 128
  18. typedef void (*pfunc)(UINT32*);
  19. typedef UINT8 (*pfunc3)(UINT32, UINT8, UINT32 *);
  20. enum{
  21. ir_Press,
  22. ir_Single_end,
  23. ir_Repeat,
  24. ir_repeat_end,
  25. };
  26. typedef enum {
  27. KEYSTATUS_NORMAL,
  28. KEYSTATUS_CONT,
  29. KEYSTATUS_CONTEND,
  30. KEYSTATUS_NOREND
  31. }KEYSTATUS;
  32. typedef struct _IRKeymap_t {
  33. UINT16 CusCode;
  34. UINT8 Keycode;
  35. UINT32 Event;
  36. } IRKeymap_t, *PIRKeymap_t;
  37. typedef struct {
  38. IRKeymap_t irUMFMapping[IR_KEY_NUMBER_MAX];
  39. UINT16 irCstCode[CUS_CODE_COUNT];
  40. IR_PowerOnKeyCode irPowerOnKey;
  41. } IRKeyInfo_t, *PIRKeyInfo_t;
  42. typedef struct {
  43. const UINT8 IRName[16];
  44. const IRKeymap_t *pdIR_Map;
  45. UINT8 IR_Count;
  46. UINT16 *pCID;
  47. pfunc pfIRConvert;
  48. pfunc3 pfIRGetEvent;
  49. } IR_MAP_t;
  50. typedef struct
  51. {
  52. UINT8 *Items;
  53. UINT8 Size;
  54. } IR_RC_RepeatKey;
  55. typedef struct _IRKey_t
  56. {
  57. BOOLEAN bValid;
  58. UINT8 IRKeyStatus;
  59. UINT16 IRKey;
  60. UINT16 IRAndroidKey;
  61. }IRKey_t;
  62. typedef enum {
  63. IRSTATUS_NORMAL,
  64. IRSTATUS_POWEROFF
  65. }IRDevStatus;
  66. #pragma pack(push,1)
  67. #define IRKeySettingNumber 2
  68. #define IRKeyAddressNumber 2
  69. //up to two HW key address
  70. typedef struct _KeyMap_t
  71. {
  72. UINT16 HWKey_H;
  73. UINT16 HWKey_L;
  74. UINT16 KeyCode;
  75. UINT16 AndroidKeyCode;
  76. }KeyMap_t;
  77. #pragma pack(pop)
  78. typedef struct _Keycode_t
  79. {
  80. UINT32 key;
  81. UINT32 status;
  82. }Keycode_t, *PKeycode_t;
  83. //------- IR key status --------------------
  84. #define IR_KEY_NORMAL 0
  85. #define IR_CONTINUE_KEY_START_END 1
  86. #define IR_CONTINUE_KEY_START 2
  87. #define IR_CONTINUE_KEY_END 3
  88. #define IR_KEY_NORMAL_END 5
  89. //----------------------------------------
  90. //------- Keypad key status-----------------
  91. #define KP_KEY_NORMAL 0
  92. #define KP_CONTINUE_KEY_START 1
  93. #define KP_CONTINUE_KEY_END 2
  94. #define KP_KEY_NORMAL_END 5
  95. //------- ---------------------------------
  96. typedef void (* IR_CallBack_t)(UINT32 KeyCode, UINT32 CusCode, UINT8 KeyValue);
  97. #if defined (CONFIG_KEYPAD_SINGLE_REUSE) || defined(CONFIG_KEYPAD_THREE_KEY_REUSE) || defined(CONFIG_KEYPAD_FIVE_KEY_REUSE)
  98. typedef void (* KP_CallBack_t)(UINT32 *dMessage);
  99. #endif
  100. INT32 ir_SetMappingTable(IR_MAP_t* pIRTable, UINT32 dTableSize);
  101. INT32 ir_init(IR_CallBack_t pIR_CallBackFunc);
  102. int ir_finalize(void);
  103. #ifndef _CCOPTS_
  104. HRESULT umfsleep(time_t sec, long nsec);
  105. #endif
  106. #ifdef CONFIG_TESTAUTOREBOOT
  107. void ir_autoreboot_disable(void);
  108. void ir_autoreboot_enable(void);
  109. #endif
  110. int ir_LoadEventCode(UINT8 table_index);
  111. void KP_Set_MapTable(UINT8 table_index);
  112. #ifdef SUPPORT_FACTORY_AUTO_TEST_MODE4
  113. UINT16 ir_GetLastKPKey(void);
  114. #endif
  115. #if defined (CONFIG_KEYPAD_SINGLE_REUSE) || defined(CONFIG_KEYPAD_THREE_KEY_REUSE) || defined(CONFIG_KEYPAD_FIVE_KEY_REUSE)
  116. void ir_RegisterKpCallback(KP_CallBack_t pKP_CallBackFunc);
  117. #endif
  118. #endif //_IR_H_