高通Android平台添加按键键值的方法
diff --git a/src/LINUX/android/external/webkit/Source/WebKit/android/plugins/ANPKeyCodes.h b/src/LINUX/android/external/webkit/Source/WebKit/android/plugins/ANPKeyCodes.h
old mode 100644
new mode 100755
index 969679f..e265675
--- a/src/LINUX/android/external/webkit/Source/WebKit/android/plugins/ANPKeyCodes.h
+++ b/src/LINUX/android/external/webkit/Source/WebKit/android/plugins/ANPKeyCodes.h
@@ -222,6 +222,11 @@ enum ANPKeyCodes {
kProgBlue_ANPKeyCode = 186,
kAppSwitch_ANPKeyCode = 187,
+ kGesUp_ANPKeyCode = 223, //young.yang add began
+ kGesDown_ANPKeyCode = 224,
+ kGesLeft_ANPKeyCode = 225,
+ kGesRight_ANPKeyCode = 226, //young.yang add end
+
// NOTE: If you add a new keycode here you must also add it to several other files.
// Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
};
diff --git a/src/LINUX/android/frameworks/base/api/current.txt b/src/LINUX/android/frameworks/base/api/current.txt
index 8e69592..cbc8af4 100644
--- a/src/LINUX/android/frameworks/base/api/current.txt
+++ b/src/LINUX/android/frameworks/base/api/current.txt
@@ -21790,7 +21790,7 @@ package android.renderscript {
}
public class BaseObj {
- method public synchronized void destroy();
+ method public void destroy();
method public java.lang.String getName();
method public void setName(java.lang.String);
}
@@ -26801,6 +26801,10 @@ package android.view {
field public static final int KEYCODE_FORWARD_DEL = 112; // 0x70
field public static final int KEYCODE_FUNCTION = 119; // 0x77
field public static final int KEYCODE_G = 35; // 0x23
+ field public static final int KEYCODE_GES_DOWN = 224; // 0xe0
+ field public static final int KEYCODE_GES_LEFT = 225; // 0xe1
+ field public static final int KEYCODE_GES_RIGHT = 226; // 0xe2
+ field public static final int KEYCODE_GES_UP = 223; // 0xdf
field public static final int KEYCODE_GRAVE = 68; // 0x44
field public static final int KEYCODE_GUIDE = 172; // 0xac
field public static final int KEYCODE_H = 36; // 0x24
diff --git a/src/LINUX/android/frameworks/base/core/java/android/view/KeyEvent.java b/src/LINUX/android/frameworks/base/core/java/android/view/KeyEvent.java
old mode 100644
new mode 100755
index 5a5fc10..2975add
--- a/src/LINUX/android/frameworks/base/core/java/android/view/KeyEvent.java
+++ b/src/LINUX/android/frameworks/base/core/java/android/view/KeyEvent.java
@@ -633,7 +633,13 @@ public class KeyEvent extends InputEvent implements Parcelable {
* Switches the audio tracks. */
public static final int KEYCODE_MEDIA_AUDIO_TRACK = 222;
- private static final int LAST_KEYCODE = KEYCODE_MEDIA_AUDIO_TRACK;
+ /*young.yang add GES kcode*/
+ public static final int KEYCODE_GES_UP = 223;
+ public static final int KEYCODE_GES_DOWN = 224;
+ public static final int KEYCODE_GES_LEFT = 225;
+ public static final int KEYCODE_GES_RIGHT = 226;
+
+ private static final int LAST_KEYCODE = KEYCODE_GES_RIGHT;
// NOTE: If you add a new keycode here you must also add it to:
// isSystem()
@@ -878,6 +884,10 @@ public class KeyEvent extends InputEvent implements Parcelable {
names.append(KEYCODE_BRIGHTNESS_DOWN, "KEYCODE_BRIGHTNESS_DOWN");
names.append(KEYCODE_BRIGHTNESS_UP, "KEYCODE_BRIGHTNESS_UP");
names.append(KEYCODE_MEDIA_AUDIO_TRACK, "KEYCODE_MEDIA_AUDIO_TRACK");
+ names.append(KEYCODE_GES_UP, "KEYCODE_GES_UP"); //young.yang add began
+ names.append(KEYCODE_GES_DOWN, "KEYCODE_GES_DOWN");
+ names.append(KEYCODE_GES_LEFT, "KEYCODE_GES_LEFT");
+ names.append(KEYCODE_GES_RIGHT, "KEYCODE_GES_RIGHT"); //young.yang add end
};
// Symbolic names of all metakeys in bit order from least significant to most significant.
diff --git a/src/LINUX/android/frameworks/base/core/res/res/values/attrs.xml b/src/LINUX/android/frameworks/base/core/res/res/values/attrs.xml
old mode 100644
new mode 100755
index b91cca2..ec71279
--- a/src/LINUX/android/frameworks/base/core/res/res/values/attrs.xml
+++ b/src/LINUX/android/frameworks/base/core/res/res/values/attrs.xml
@@ -1567,6 +1567,11 @@
+
+
+
+
+
diff --git a/src/LINUX/android/frameworks/base/data/keyboards/Generic.kl b/src/LINUX/android/frameworks/base/data/keyboards/Generic.kl
old mode 100644
new mode 100755
index 1413319..f0b9294
--- a/src/LINUX/android/frameworks/base/data/keyboards/Generic.kl
+++ b/src/LINUX/android/frameworks/base/data/keyboards/Generic.kl
@@ -247,6 +247,11 @@ key 224 BRIGHTNESS_DOWN
key 225 BRIGHTNESS_UP
key 226 HEADSETHOOK
+key 249 GES_UP
+key 250 GES_DOWN
+key 251 GES_LEFT
+key 252 GES_RIGHT
+
key 256 BUTTON_1
key 257 BUTTON_2
key 258 BUTTON_3
diff --git a/src/LINUX/android/frameworks/native/include/android/keycodes.h b/src/LINUX/android/frameworks/native/include/android/keycodes.h
old mode 100644
new mode 100755
index 1ca1332..61e7277
--- a/src/LINUX/android/frameworks/native/include/android/keycodes.h
+++ b/src/LINUX/android/frameworks/native/include/android/keycodes.h
@@ -267,6 +267,12 @@ enum {
AKEYCODE_BRIGHTNESS_UP = 221,
AKEYCODE_MEDIA_AUDIO_TRACK = 222,
+ //young.yang add ges kcode
+ AKEYCODE_GES_UP = 223,
+ AKEYCODE_GES_DOWN = 224,
+ AKEYCODE_GES_LEFT = 225,
+ AKEYCODE_GES_RIGHT = 226,
+
// NOTE: If you add a new keycode here you must also add it to several other files.
// Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
};
diff --git a/src/LINUX/android/frameworks/native/include/input/KeycodeLabels.h b/src/LINUX/android/frameworks/native/include/input/KeycodeLabels.h
old mode 100644
new mode 100755
index c64c5d8..48198fb
--- a/src/LINUX/android/frameworks/native/include/input/KeycodeLabels.h
+++ b/src/LINUX/android/frameworks/native/include/input/KeycodeLabels.h
@@ -248,6 +248,12 @@ static const KeycodeLabel KEYCODES[] = {
{ "BRIGHTNESS_UP", 221 },
{ "MEDIA_AUDIO_TRACK", 222 },
+ //young.yang add ges kcode
+ { "GES_UP", 223 },
+ { "GES_DOWN", 224 },
+ { "GES_LEFT", 225 },
+ { "GES_RIGHT", 226 },
+
// NOTE: If you add a new keycode here you must also add it to several other files.
// Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
diff --git a/src/LINUX/android/frameworks/native/libs/input/Input.cpp b/src/LINUX/android/frameworks/native/libs/input/Input.cpp
old mode 100644
new mode 100755
index 6f53996..cb3d05c
--- a/src/LINUX/android/frameworks/native/libs/input/Input.cpp
+++ b/src/LINUX/android/frameworks/native/libs/input/Input.cpp
@@ -110,6 +110,10 @@ bool KeyEvent::isSystemKey(int32_t keyCode) {
case AKEYCODE_BRIGHTNESS_DOWN:
case AKEYCODE_BRIGHTNESS_UP:
case AKEYCODE_MEDIA_AUDIO_TRACK:
+ case AKEYCODE_GES_UP: //young.yang add ges kcode began
+ case AKEYCODE_GES_DOWN:
+ case AKEYCODE_GES_LEFT:
+ case AKEYCODE_GES_RIGHT: //young.yang add ges kcode end
return true;
}
diff --git a/src/LINUX/android/hardware/stkgesd/stk_ges.kl b/src/LINUX/android/hardware/stkgesd/stk_ges.kl
index d831f8d..ca3bbf8 100755
--- a/src/LINUX/android/hardware/stkgesd/stk_ges.kl
+++ b/src/LINUX/android/hardware/stkgesd/stk_ges.kl
@@ -11,12 +11,11 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
-key 103 DPAD_UP
key 104 PAGE_UP
-key 105 DPAD_LEFT
-key 106 DPAD_RIGHT
-key 108 DPAD_DOWN
key 109 PAGE_DOWN
key 114 VOLUME_DOWN
key 115 VOLUME_UP
+key 249 GES_UP
+key 250 GES_DOWN
+key 251 GES_LEFT
+key 252 GES_RIGHT
diff --git a/src/LINUX/android/kernel/drivers/input/misc/stk3420.c b/src/LINUX/android/kernel/drivers/input/misc/stk3420.c
index 737dc3c..e294fb8 100755
--- a/src/LINUX/android/kernel/drivers/input/misc/stk3420.c
+++ b/src/LINUX/android/kernel/drivers/input/misc/stk3420.c
@@ -54,7 +54,7 @@
#define STK_PS_INT_MODE 0 /* 0:normal interrupt; 1:LOW for near, HIGH for far */
#define STK_POLL_PS
#define STK_POLL_ALS /* ALS interrupt is valid only when STK_PS_INT_MODE = 0 */
-//#define CALI_PS_EVERY_TIME
+#define CALI_PS_EVERY_TIME
//#define STK_ALS_FIR
//#define STK_IRS
//#define STK_CHK_REG
@@ -373,6 +373,9 @@ struct stk3420_data {
#ifdef CONFIG_HAS_EARLYSUSPEND
//struct early_suspend stk_early_suspend;
#endif
+
+
+ bool sunlight_ges;
};
#if( !defined(CONFIG_STK_PS_ALS_USE_CHANGE_THRESHOLD))
@@ -935,7 +938,8 @@ static int32_t stk3420_enable_ges(struct stk3420_data *ps_data, uint8_t enable)
if(ret < 0)
return ret;
w_state_reg = ret;
-
+
+ ps_data->sunlight_ges = false;
if(enable) {
#ifdef STK_QUALCOMM_POWER_CTRL
ret = stk_device_ctl(ps_data, enable);
@@ -1586,29 +1590,47 @@ static int32_t stk_ges_input_touch_event(struct stk3420_data *ps_data, struct de
return 0;
}
+static int stk_ps_val(struct stk3420_data *ps_data);
static int32_t stk_ges_input_key_event(struct stk3420_data *ps_data, struct device *dev, int value)
{
uint8_t ges;
-
+ int ret;
+
+ ret = stk_ps_val(ps_data);
+ if((ret == 0xFFFF) && (ps_data->sunlight_ges == false))
+ {
+ ps_data->sunlight_ges = true;
+ APS_LOG( "%s: enter sunlightn",__func__);
+ return 0;
+ }else if((ret != 0xFFFF) && (ps_data->sunlight_ges == true)){
+ ps_data->sunlight_ges = false;
+ APS_LOG( "%s: exit sunlightn",__func__);
+ return 0;
+ }
+ if(ps_data->sunlight_ges == true){
+ APS_LOG( "%s: sunlight ges dispatchn",__func__);
+ return 0;
+ }
+
switch(value) {
case 3:
//APS_INFO("%s: ges input event, not detectedn",__func__);
case 0:
return 0;
case 1:
- ges = KEY_UP;
+ ges = KEY_GES_UP;
APS_INFO("%s: ges input event ^^^^n",__func__);
break;
case 2:
- ges = KEY_DOWN;
+ ges = KEY_GES_DOWN;
APS_INFO("%s: ges input event vvvvn",__func__);
break;
case 8:
- ges = KEY_LEFT;
+ ges = KEY_GES_LEFT;
APS_INFO("%s: ges input event <<<
break;
case 16:
- ges = KEY_RIGHT;
+ ges = KEY_GES_RIGHT;
APS_INFO("%s: ges input event >>>>n",__func__);
break;
case 32:
@@ -1624,7 +1646,7 @@ static int32_t stk_ges_input_key_event(struct stk3420_data *ps_data, struct devi
APS_ERR("%s, unknown key %d, force report itn", __func__, (int)value);
//return -EINVAL;
}
-
+ printk("n[young] : kernel ges = %dn",ges);
input_report_key(ps_data->ges_input_dev, ges, 1);
input_report_key(ps_data->ges_input_dev, ges, 0);
input_sync(ps_data->ges_input_dev);
@@ -2255,6 +2277,7 @@ static int stk_ps_tune0_boot_init(struct stk3420_data *ps_data)
ps_data->tune0.ps_stat_data[2] = 9999;
ps_data->tune0.ps_stat_data[1] = 0;
ps_data->tune0.data_count = 0;
+ ps_data->sunlight_ges = false;
ps_data->tune0.tune_zero_init_proc = true;
ret = stk3420_i2c_write_byte_data(ps_data->client, STK_INT_REG, 0);
@@ -3394,10 +3417,10 @@ static int stk_set_input_devices(struct stk3420_data *ps_data)
set_bit(KEY_VOLUMEUP, ps_data->ges_input_dev->keybit);
set_bit(KEY_VOLUMEDOWN, ps_data->ges_input_dev->keybit);
- set_bit(KEY_LEFT, ps_data->ges_input_dev->keybit);
- set_bit(KEY_RIGHT, ps_data->ges_input_dev->keybit);
- set_bit(KEY_UP, ps_data->ges_input_dev->keybit);
- set_bit(KEY_DOWN, ps_data->ges_input_dev->keybit);
+ set_bit(KEY_GES_LEFT, ps_data->ges_input_dev->keybit);
+ set_bit(KEY_GES_RIGHT, ps_data->ges_input_dev->keybit);
+ set_bit(KEY_GES_UP, ps_data->ges_input_dev->keybit);
+ set_bit(KEY_GES_DOWN, ps_data->ges_input_dev->keybit);
set_bit(195, ps_data->ges_input_dev->keybit);
set_bit(196, ps_data->ges_input_dev->keybit);
diff --git a/src/LINUX/android/kernel/include/uapi/linux/input.h b/src/LINUX/android/kernel/include/uapi/linux/input.h
old mode 100644
new mode 100755
index 250834c..6527964
--- a/src/LINUX/android/kernel/include/uapi/linux/input.h
+++ b/src/LINUX/android/kernel/include/uapi/linux/input.h
@@ -470,6 +470,12 @@ struct input_keymap_entry {
#define KEY_MICMUTE 248 /* Mute / unmute the microphone */
+#define KEY_GES_UP 249 //young.yang add began
+#define KEY_GES_DOWN 250
+#define KEY_GES_LEFT 251
+#define KEY_GES_RIGHT 252 //young.yang add end
+
+
/* Code 255 is reserved for special needs of AT keyboard driver */
#define BTN_MISC 0x100