mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-18 08:03:30 +02:00
84 lines
2.6 KiB
JavaScript
84 lines
2.6 KiB
JavaScript
module.exports = function KeycodesServiceFactory(KeycodesAndroid, KeycodesJS) {
|
|
var service = {}
|
|
|
|
var a = KeycodesAndroid
|
|
var j = KeycodesJS
|
|
var androidMap = [
|
|
[j.ENTER, a.KEYCODE_ENTER],
|
|
[j.SPACE, a.KEYCODE_SPACE],
|
|
[j.DELETE, a.KEYCODE_DEL],
|
|
[j.ESCAPE, a.KEYCODE_ESCAPE],
|
|
[j.BACKSPACE, a.KEYCODE_DEL],
|
|
[j.TAB, a.KEYCODE_TAB],
|
|
[j.SHIFT, a.KEYCODE_SHIFT_LEFT],
|
|
[j.CAPS_LOCK, a.KEYCODE_CAPS_LOCK],
|
|
[j.SLASH, a.KEYCODE_SLASH],
|
|
[j.BACKSLASH, a.KEYCODE_BACKSLASH],
|
|
[j.COMMA, a.KEYCODE_COMMA],
|
|
[j.PERIOD, a.KEYCODE_PERIOD],
|
|
[j.SEMICOLON, a.KEYCODE_SEMICOLON],
|
|
[j.PAGE_UP, a.KEYCODE_PAGE_UP],
|
|
[j.PAGE_DOWN, a.KEYCODE_PAGE_DOWN],
|
|
// [j.LEFT_WINDOW, a.KEYCODE_RO],
|
|
// [j.SELECT_KEY, a.KEYCODE_KANA],
|
|
[j.HOME, a.KEYCODE_MOVE_HOME],
|
|
[j.END, a.KEYCODE_MOVE_END],
|
|
[j.UP, a.KEYCODE_DPAD_UP],
|
|
[j.DOWN, a.KEYCODE_DPAD_DOWN],
|
|
[j.LEFT, a.KEYCODE_DPAD_LEFT],
|
|
[j.RIGHT, a.KEYCODE_DPAD_RIGHT],
|
|
[j.F3, a.KEYCODE_POWER],
|
|
[j.F7, a.KEYCODE_MEDIA_PREVIOUS],
|
|
[j.F8, a.KEYCODE_MEDIA_PLAY_PAUSE],
|
|
[j.F9, a.KEYCODE_MEDIA_NEXT],
|
|
[j.F10, a.KEYCODE_VOLUME_MUTE],
|
|
[j.F11, a.KEYCODE_VOLUME_DOWN],
|
|
[j.F12, a.KEYCODE_VOLUME_UP],
|
|
[j.NUMPAD_0, a.KEYCODE_NUMPAD_0],
|
|
[j.NUMPAD_1, a.KEYCODE_NUMPAD_1],
|
|
[j.NUMPAD_2, a.KEYCODE_NUMPAD_2],
|
|
[j.NUMPAD_3, a.KEYCODE_NUMPAD_3],
|
|
[j.NUMPAD_4, a.KEYCODE_NUMPAD_4],
|
|
[j.NUMPAD_5, a.KEYCODE_NUMPAD_5],
|
|
[j.NUMPAD_6, a.KEYCODE_NUMPAD_6],
|
|
[j.NUMPAD_7, a.KEYCODE_NUMPAD_7],
|
|
[j.NUMPAD_8, a.KEYCODE_NUMPAD_8],
|
|
[j.NUMPAD_9, a.KEYCODE_NUMPAD_9],
|
|
[j.MULTIPLY, a.KEYCODE_NUMPAD_MULTIPLY],
|
|
[j.ADD, a.KEYCODE_NUMPAD_ADD],
|
|
[j.SUBTRACT, a.KEYCODE_NUMPAD_SUBTRACT],
|
|
[j.DECIMAL_POINT, a.KEYCODE_NUMPAD_DOT],
|
|
[j.DIVIDE, a.KEYCODE_NUMPAD_DIVIDE],
|
|
[j.EQUAL_SIGN, a.KEYCODE_EQUALS],
|
|
[j.DASH, a.KEYCODE_MINUS],
|
|
[j.GRAVE_ACCENT, a.KEYCODE_GRAVE],
|
|
[j.OPEN_BRACKET, a.KEYCODE_LEFT_BRACKET],
|
|
[j.CLOSE_BRACKET, a.KEYCODE_RIGHT_BRACKET],
|
|
[j.SINGLE_QUOTE, a.KEYCODE_APOSTROPHE]
|
|
]
|
|
|
|
service.mapToDevice = function(keyCode) {
|
|
return service.mapToAndroid(keyCode)
|
|
}
|
|
|
|
service.mapToAndroid = function(key) {
|
|
// All special keys
|
|
for (var i = 0; i < androidMap.length; ++i) {
|
|
if (androidMap[i][0] === key) {
|
|
return androidMap[i][1]
|
|
}
|
|
}
|
|
// Range of numbers and letters
|
|
if (key >= j['0'] && key <= j['9']) {
|
|
return key - 41 // 0-9 range
|
|
}
|
|
else if (key >= j.A && key <= j.Z) {
|
|
return key - 36 // a-z range
|
|
}
|
|
// Key not mapped
|
|
return -1
|
|
}
|
|
|
|
return service
|
|
}
|