yuezonghe | 824eb0c | 2024-06-27 02:32:26 -0700 | [diff] [blame^] | 1 | /******************************************************************************* |
| 2 | * Copyright (C) 2014, ZTE Corporation. |
| 3 | * |
| 4 | * File Name: drvs_io_kpd.h |
| 5 | * File Mark: |
| 6 | * Description: |
| 7 | * Others: |
| 8 | * Version: 1.0 |
| 9 | * Author: yuxiang |
| 10 | * Date: 2014-07-11 |
| 11 | * History 1: |
| 12 | * Date: |
| 13 | * Version: |
| 14 | * Author: |
| 15 | * Modification: |
| 16 | * History 2: |
| 17 | ********************************************************************************/ |
| 18 | |
| 19 | #ifndef _DRVS_IO_KPD_H |
| 20 | #define _DRVS_IO_KPD_H |
| 21 | |
| 22 | /**************************************************************************** |
| 23 | * Include files |
| 24 | ****************************************************************************/ |
| 25 | #include "drvs_io.h" |
| 26 | |
| 27 | /**************************************************************************** |
| 28 | * Macros |
| 29 | ****************************************************************************/ |
| 30 | #define ZDRV_DEV_KPD "kpd" |
| 31 | |
| 32 | /**************************************************************************** |
| 33 | * Types |
| 34 | ****************************************************************************/ |
| 35 | |
| 36 | /* tianbao zhou 20171122 */ |
| 37 | typedef enum |
| 38 | { |
| 39 | KPD_VK_NULL, |
| 40 | |
| 41 | KPD_VK_1, /* number 1 */ |
| 42 | KPD_VK_2, /* number 2 */ |
| 43 | KPD_VK_3, /* number 3 */ |
| 44 | KPD_VK_4, /* number 4 */ |
| 45 | KPD_VK_5, /* number 5 */ |
| 46 | KPD_VK_6, /* number 6 */ |
| 47 | KPD_VK_7, /* number 7 */ |
| 48 | KPD_VK_8, /* number 8 */ |
| 49 | KPD_VK_9, /* number 9 */ |
| 50 | KPD_VK_0, /* number 0 */ |
| 51 | KPD_VK_STAR, /* 11: key * */ |
| 52 | KPD_VK_HASH, /* 12: key # */ |
| 53 | |
| 54 | KPD_VK_NV_UP, /* 13: key up */ |
| 55 | KPD_VK_NV_DOWN, /* 14: key down */ |
| 56 | KPD_VK_NV_LEFT, /* 15: key left */ |
| 57 | KPD_VK_NV_RIGHT, /* 16: key right */ |
| 58 | KPD_VK_NV_CENTER, /* 17: key ok */ |
| 59 | KPD_VK_SOFT_LEFT, /* 18: left soft */ |
| 60 | KPD_VK_SOFT_RIGHT, /* 19: right soft */ |
| 61 | KPD_VK_CALL, /* 20: call key */ |
| 62 | |
| 63 | /* Use only KPD_VK_POWER if a key is both KPD_VK_CANCEL and KPD_VK_POWER */ |
| 64 | KPD_VK_CANCEL, /* cancel key. */ |
| 65 | KPD_VK_POWER, /* 22: power key. */ |
| 66 | |
| 67 | KPD_VK_SOFT_1, /* 23: soft key 1 for additional functional key */ |
| 68 | KPD_VK_SOFT_2, /* 24: soft key 2 for additional functional key */ |
| 69 | KPD_VK_SOFT_3, /* 25: soft key 3 for additional functional key */ |
| 70 | KPD_VK_SOFT_4, /* 26: soft key 4 for additional functional key */ |
| 71 | |
| 72 | KPD_VK_SIDE_UP, /* 27: up key on the side */ |
| 73 | KPD_VK_SIDE_DOWN, /* 28: down key on the side */ |
| 74 | KPD_VK_WEB, /* 29: web key */ |
| 75 | KPD_VK_CAMERA, /* 30: camera key */ |
| 76 | KPD_VK_FLIP, /* 31: flip key */ |
| 77 | |
| 78 | KPD_VK_SHORTCUT1, /* 32: */ |
| 79 | KPD_VK_SHORTCUT2, |
| 80 | KPD_VK_SHORTCUT3, |
| 81 | KPD_VK_SHORTCUT4, |
| 82 | KPD_VK_SHORTCUT5, |
| 83 | KPD_VK_SHORTCUT6, |
| 84 | KPD_VK_VOLUME, /* 38: ÒôÁ¿µ÷½Ú½çÃæ¿ì½Ý¼ü */ |
| 85 | KPD_VK_SETTING, /* 39: ¿ì½ÝÉèÖà */ |
| 86 | KPD_VK_WEATHERPORT, /* 40: ÌìÆøÔ¤±¨ */ |
| 87 | KPD_VK_MESSAGE, /* 41: ¶ÌÐÅ */ |
| 88 | KPD_VK_12580, /* 42: */ |
| 89 | KPD_VK_SOS, /* 43: */ |
| 90 | KPD_VK_REDIAL, /* 44: ÖØ²¥ */ |
| 91 | KPD_VK_HEADFREE, /* 45: ÃâÌá¼ü */ |
| 92 | KPD_VK_HEADSET, /* 46: Õª»ú »ò ¹Ò»ú */ |
| 93 | KPD_VK_HEADSETUP, /* 47: ͻȜ */ |
| 94 | KPD_VK_HEADSETDOWN, /* 48: ¹Ò»ú */ |
| 95 | |
| 96 | KPD_VK_WIFI, |
| 97 | KPD_VK_RESET, |
| 98 | KPD_VK_WPS, |
| 99 | |
| 100 | KPD_VK_NUM /* 52 */ |
| 101 | } T_ZDrvKpd_VirtualKey; |
| 102 | |
| 103 | /* key state */ |
| 104 | typedef enum |
| 105 | { |
| 106 | KEY_RELEASED, /* key has been released */ |
| 107 | KEY_PRESSED, /* key has been pressed */ |
| 108 | |
| 109 | MAX_KEY_STATE |
| 110 | } T_ZDrvKpd_KeyState; |
| 111 | |
| 112 | typedef struct |
| 113 | { |
| 114 | T_ZDrvKpd_VirtualKey key; /* key code */ |
| 115 | T_ZDrvKpd_KeyState state; /* key state */ |
| 116 | UINT8 times; /* scaned times when pressed, and by this can get the de pressed |
| 117 | * time equal to times x scan interval( 100ms ) */ |
| 118 | } T_ZDrvKpd_KeyItem; |
| 119 | |
| 120 | #if IOKEYS(IOCTL_KPD_SET_BLG_BRIGHTNESS) || IOKEYS(IOCTL_KPD_GET_BLG_STATUS) |
| 121 | typedef UINT8 T_ZDrvKpd_BlgBrightness; /* 0~255 */ |
| 122 | #endif |
| 123 | |
| 124 | #if IOKEYS(IOCTL_KPD_GET_BLG_STATUS) |
| 125 | typedef struct |
| 126 | { |
| 127 | UINT8 isBlgOn; |
| 128 | T_ZDrvKpd_BlgBrightness brightness; |
| 129 | } T_ZDrvKpd_BlgStatus; |
| 130 | #endif |
| 131 | |
| 132 | |
| 133 | #endif/*_DRVS_IO_KPD_H*/ |
| 134 | |