Merge "Tweak key layouts."
diff --git a/data/keyboards/Apple_Wireless_Keyboard.kl b/data/keyboards/Apple_Wireless_Keyboard.kl
new file mode 100644
index 0000000..9262a03
--- /dev/null
+++ b/data/keyboards/Apple_Wireless_Keyboard.kl
@@ -0,0 +1,119 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+
+#
+# Apple Wireless Keyboard
+#
+# Notes:
+# - Keys such as PAGE_UP and FORWARD_DEL are produced using the
+#   function key.
+# - Special function keys for brightness control, etc. are not
+#   implemented here.
+
+key 1     ESCAPE
+key 2     1
+key 3     2
+key 4     3
+key 5     4
+key 6     5
+key 7     6
+key 8     7
+key 9     8
+key 10    9
+key 11    0
+key 12    MINUS
+key 13    EQUALS
+key 14    DEL
+key 15    TAB
+key 16    Q
+key 17    W
+key 18    E
+key 19    R
+key 20    T
+key 21    Y
+key 22    U
+key 23    I
+key 24    O
+key 25    P
+key 26    LEFT_BRACKET
+key 27    RIGHT_BRACKET
+key 28    ENTER
+key 29    CTRL_LEFT
+key 30    A
+key 31    S
+key 32    D
+key 33    F
+key 34    G
+key 35    H
+key 36    J
+key 37    K
+key 38    L
+key 39    SEMICOLON
+key 40    APOSTROPHE
+key 41    GRAVE
+key 42    SHIFT_LEFT
+key 43    BACKSLASH
+key 44    Z
+key 45    X
+key 46    C
+key 47    V
+key 48    B
+key 49    N
+key 50    M
+key 51    COMMA
+key 52    PERIOD
+key 53    SLASH
+key 54    SHIFT_RIGHT
+key 56    ALT_LEFT
+key 57    SPACE
+key 58    CAPS_LOCK
+key 59    F1
+key 60    F2
+key 61    F3
+key 62    F4
+key 63    F5
+key 64    F6
+key 65    F7
+key 66    F8
+key 67    F9
+key 68    F10
+key 87    F11
+key 88    F12
+key 100   ALT_RIGHT
+key 102   MOVE_HOME
+key 103   DPAD_UP
+key 104   PAGE_UP
+key 105   DPAD_LEFT
+key 106   DPAD_RIGHT
+key 107   MOVE_END
+key 108   DPAD_DOWN
+key 109   PAGE_DOWN
+key 110   NUMPAD_ENTER
+key 111   FORWARD_DEL
+key 113   VALUME_MUTE
+key 114   VOLUME_DOWN
+key 115   VOLUME_UP
+# key 120  switch applications
+key 125   META_LEFT
+key 126   META_RIGHT
+key 161   MEDIA_EJECT
+key 163   MEDIA_NEXT
+key 164   MEDIA_PLAY_PAUSE
+key 165   MEDIA_PREVIOUS
+# key 204  show gadgets
+# key 224  reduce brightness
+# key 225  increase brightness
+# key 229  blank special function on F5
+# key 230  blank special function on F6
+key 464   FUNCTION
diff --git a/data/keyboards/Generic.kl b/data/keyboards/Generic.kl
index e98000d..1ee121e 100644
--- a/data/keyboards/Generic.kl
+++ b/data/keyboards/Generic.kl
@@ -175,7 +175,7 @@
 # key 153 "KEY_DIRECTION"
 # key 154 "KEY_CYCLEWINDOWS"
 key 155   ENVELOPE
-# key 156 "KEY_BOOKMARKS"
+key 156   BOOKMARK
 # key 157 "KEY_COMPUTER"
 key 158   BACK              WAKE_DROPPED
 key 159   FORWARD
@@ -289,11 +289,11 @@
 # key 359 "KEY_TIME"
 # key 360 "KEY_VENDOR"
 # key 361 "KEY_ARCHIVE"
-# key 362 "KEY_PROGRAM"
+key 362   GUIDE
 # key 363 "KEY_CHANNEL"
 # key 364 "KEY_FAVORITES"
 # key 365 "KEY_EPG"
-# key 366 "KEY_PVR"
+key 366   DVR
 # key 367 "KEY_MHP"
 # key 368 "KEY_LANGUAGE"
 # key 369 "KEY_TITLE"
@@ -304,7 +304,7 @@
 # key 374 "KEY_KEYBOARD"
 # key 375 "KEY_SCREEN"
 # key 376 "KEY_PC"
-# key 377 "KEY_TV"
+key 377   TV
 # key 378 "KEY_TV2"
 # key 379 "KEY_VCR"
 # key 380 "KEY_VCR2"
@@ -329,8 +329,8 @@
 # key 399 "KEY_GREEN"
 # key 400 "KEY_YELLOW"
 # key 401 "KEY_BLUE"
-# key 402 "KEY_CHANNELUP"
-# key 403 "KEY_CHANNELDOWN"
+key 402   CHANNEL_UP
+key 403   CHANNEL_DOWN
 # key 404 "KEY_FIRST"
 # key 405 "KEY_LAST"
 # key 406 "KEY_AB"
diff --git a/data/keyboards/Logitech_USB_Receiver.kl b/data/keyboards/Logitech_USB_Receiver.kl
new file mode 100644
index 0000000..23a8f54
--- /dev/null
+++ b/data/keyboards/Logitech_USB_Receiver.kl
@@ -0,0 +1,133 @@
+# Copyright (C) 2010 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# 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.
+
+#
+# Logitech Revue keyboard
+#
+# Notes:
+# - The GRAVE key is emulated by the keyboard.
+#     ALT + LEFT_BRACKET produces GRAVE.
+#     ALT + RIGHT_BRACKET produces SHIFT + GRAVE.
+# - FORWARD_DEL is produced by fn + BACKSPACE
+# - PAGE_UP / PAGE_DOWN is produced by fn + CHANNEL_UP / CHANNEL_DOWN
+# - The AVR / STB / TV power and input buttons seem to be non-functional
+#   as well as several of the other fn buttons and the PIP button?
+
+key 1     ESCAPE
+key 2     1
+key 3     2
+key 4     3
+key 5     4
+key 6     5
+key 7     6
+key 8     7
+key 9     8
+key 10    9
+key 11    0
+key 12    MINUS
+key 13    EQUALS
+key 14    DEL
+key 15    TAB
+key 16    Q
+key 17    W
+key 18    E
+key 19    R
+key 20    T
+key 21    Y
+key 22    U
+key 23    I
+key 24    O
+key 25    P
+key 26    LEFT_BRACKET
+key 27    RIGHT_BRACKET
+key 28    ENTER
+key 29    CTRL_LEFT
+key 30    A
+key 31    S
+key 32    D
+key 33    F
+key 34    G
+key 35    H
+key 36    J
+key 37    K
+key 38    L
+key 39    SEMICOLON
+key 40    APOSTROPHE
+key 41    GRAVE
+key 42    SHIFT_LEFT
+key 43    BACKSLASH
+key 44    Z
+key 45    X
+key 46    C
+key 47    V
+key 48    B
+key 49    N
+key 50    M
+key 51    COMMA
+key 52    PERIOD
+key 53    SLASH
+key 54    SHIFT_RIGHT
+key 56    ALT_RIGHT
+key 57    SPACE
+key 58    CAPS_LOCK
+key 59    F1
+key 60    F2
+key 61    F3
+key 62    F4
+key 63    F5
+key 64    F6
+key 65    F7
+key 66    F8
+key 67    F9
+key 68    F10
+key 87    F11
+key 88    F12
+key 96    DPAD_CENTER
+key 97    CTRL_RIGHT
+key 102   MOVE_HOME
+key 103   DPAD_UP
+key 104   PAGE_UP
+key 105   DPAD_LEFT
+key 106   DPAD_RIGHT
+key 107   MOVE_END
+key 108   DPAD_DOWN
+key 109   PAGE_DOWN
+key 110   NUMPAD_ENTER
+key 111   FORWARD_DEL
+key 113   VALUME_MUTE
+key 114   VOLUME_DOWN
+key 115   VOLUME_UP
+key 119   MEDIA_PAUSE
+key 125   SEARCH
+key 127   MENU
+key 156   BOOKMARK
+key 158   BACK
+key 163   MEDIA_NEXT
+key 165   MEDIA_PREVIOUS
+key 166   MEDIA_STOP
+key 167   MEDIA_RECORD
+key 168   MEDIA_REWIND
+key 172   HOME
+key 207   MEDIA_PLAY
+key 208   MEDIA_FAST_FORWARD
+# key 288  left mouse button
+# key 289  right mouse button (fn + button)
+key 362   GUIDE
+key 366   DVR
+key 377   TV
+key 402   CHANNEL_UP
+key 403   CHANNEL_DOWN
+key 418   ZOOM_IN
+key 419   ZOOM_OUT
+
diff --git a/data/keyboards/Motorola_Bluetooth_Wireless_Keyboard.kcm b/data/keyboards/Motorola_Bluetooth_Wireless_Keyboard.kcm
deleted file mode 100644
index 73a04d0..0000000
--- a/data/keyboards/Motorola_Bluetooth_Wireless_Keyboard.kcm
+++ /dev/null
@@ -1,370 +0,0 @@
-# Copyright (C) 2010 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# 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.
-
-#
-# Generic key character map for full alphabetic US English PC style external keyboards.
-#
-# This file is intentionally very generic and is intended to support a broad rang of keyboards.
-# Do not edit the generic key character map to support a specific keyboard; instead, create
-# a new key character map file with the required keyboard configuration.
-#
-
-type FULL
-
-key A {
-    label:                              'A'
-    base:                               'a'
-    shift, capslock:                    'A'
-    ctrl, alt, meta:                    none
-}
-
-key B {
-    label:                              'B'
-    base:                               'b'
-    shift, capslock:                    'B'
-    ctrl, alt, meta:                    none
-}
-
-key C {
-    label:                              'C'
-    base:                               'c'
-    shift, capslock:                    'C'
-    ctrl, alt, meta:                    none
-}
-
-key D {
-    label:                              'D'
-    base:                               'd'
-    shift, capslock:                    'D'
-    ctrl, alt, meta:                    none
-}
-
-key E {
-    label:                              'E'
-    base:                               'e'
-    shift, capslock:                    'E'
-    ctrl, alt, meta:                    none
-}
-
-key F {
-    label:                              'F'
-    base:                               'f'
-    shift, capslock:                    'F'
-    ctrl, alt, meta:                    none
-}
-
-key G {
-    label:                              'G'
-    base:                               'g'
-    shift, capslock:                    'G'
-    ctrl, alt, meta:                    none
-}
-
-key H {
-    label:                              'H'
-    base:                               'h'
-    shift, capslock:                    'H'
-    ctrl, alt, meta:                    none
-}
-
-key I {
-    label:                              'I'
-    base:                               'i'
-    shift, capslock:                    'I'
-    ctrl, alt, meta:                    none
-}
-
-key J {
-    label:                              'J'
-    base:                               'j'
-    shift, capslock:                    'J'
-    ctrl, alt, meta:                    none
-}
-
-key K {
-    label:                              'K'
-    base:                               'k'
-    shift, capslock:                    'K'
-    ctrl, alt, meta:                    none
-}
-
-key L {
-    label:                              'L'
-    base:                               'l'
-    shift, capslock:                    'L'
-    ctrl, alt, meta:                    none
-}
-
-key M {
-    label:                              'M'
-    base:                               'm'
-    shift, capslock:                    'M'
-    ctrl, alt, meta:                    none
-}
-
-key N {
-    label:                              'N'
-    base:                               'n'
-    shift, capslock:                    'N'
-    ctrl, alt, meta:                    none
-}
-
-key O {
-    label:                              'O'
-    base:                               'o'
-    shift, capslock:                    'O'
-    ctrl, alt, meta:                    none
-}
-
-key P {
-    label:                              'P'
-    base:                               'p'
-    shift, capslock:                    'P'
-    ctrl, alt, meta:                    none
-}
-
-key Q {
-    label:                              'Q'
-    base:                               'q'
-    shift, capslock:                    'Q'
-    ctrl, alt, meta:                    none
-}
-
-key R {
-    label:                              'R'
-    base:                               'r'
-    shift, capslock:                    'R'
-    ctrl, alt, meta:                    none
-}
-
-key S {
-    label:                              'S'
-    base:                               's'
-    shift, capslock:                    'S'
-    ctrl, alt, meta:                    none
-}
-
-key T {
-    label:                              'T'
-    base:                               't'
-    shift, capslock:                    'T'
-    ctrl, alt, meta:                    none
-}
-
-key U {
-    label:                              'U'
-    base:                               'u'
-    shift, capslock:                    'U'
-    ctrl, alt, meta:                    none
-}
-
-key V {
-    label:                              'V'
-    base:                               'v'
-    shift, capslock:                    'V'
-    ctrl, alt, meta:                    none
-}
-
-key W {
-    label:                              'W'
-    base:                               'w'
-    shift, capslock:                    'W'
-    ctrl, alt, meta:                    none
-}
-
-key X {
-    label:                              'X'
-    base:                               'x'
-    shift, capslock:                    'X'
-    ctrl, alt, meta:                    none
-}
-
-key Y {
-    label:                              'Y'
-    base:                               'y'
-    shift, capslock:                    'Y'
-    ctrl, alt, meta:                    none
-}
-
-key Z {
-    label:                              'Z'
-    base:                               'z'
-    shift, capslock:                    'Z'
-    ctrl, alt, meta:                    none
-}
-
-key 0 {
-    label, number:                      '0'
-    base:                               '0'
-    shift:                              ')'
-    ctrl, alt, meta:                    none
-}
-
-key 1 {
-    label, number:                      '1'
-    base:                               '1'
-    shift:                              '!'
-    ctrl, alt, meta:                    none
-}
-
-key 2 {
-    label, number:                      '2'
-    base:                               '2'
-    shift:                              '@'
-    ctrl, alt, meta:                    none
-}
-
-key 3 {
-    label, number:                      '3'
-    base:                               '3'
-    shift:                              '#'
-    ctrl, alt, meta:                    none
-}
-
-key 4 {
-    label, number:                      '4'
-    base:                               '4'
-    shift:                              '$'
-    ctrl, alt, meta:                    none
-}
-
-key 5 {
-    label, number:                      '5'
-    base:                               '5'
-    shift:                              '%'
-    ctrl, alt, meta:                    none
-}
-
-key 6 {
-    label, number:                      '6'
-    base:                               '6'
-    shift:                              '^'
-    ctrl, alt, meta:                    none
-}
-
-key 7 {
-    label, number:                      '7'
-    base:                               '7'
-    shift:                              '&'
-    ctrl, alt, meta:                    none
-}
-
-key 8 {
-    label, number:                      '8'
-    base:                               '8'
-    shift:                              '*'
-    ctrl, alt, meta:                    none
-}
-
-key 9 {
-    label, number:                      '9'
-    base:                               '9'
-    shift:                              '('
-    ctrl, alt, meta:                    none
-}
-
-key SPACE {
-    label:                              ' '
-    base:                               ' '
-    ctrl, alt, meta:                    none
-}
-
-key ENTER {
-    label:                              '\n'
-    base:                               '\n'
-    ctrl, alt, meta:                    none
-}
-
-key TAB {
-    label:                              '\t'
-    base:                               '\t'
-    ctrl, alt, meta:                    none
-}
-
-key COMMA {
-    label, number:                      ','
-    base:                               ','
-    shift:                              '<'
-    ctrl, alt, meta:                    none
-}
-
-key PERIOD {
-    label, number:                      '.'
-    base:                               '.'
-    shift:                              '>'
-    ctrl, alt, meta:                    none
-}
-
-key SLASH {
-    label, number:                      '/'
-    base:                               '/'
-    shift:                              '?'
-    ctrl, alt, meta:                    none
-}
-
-key GRAVE {
-    label, number:                      '`'
-    base:                               '`'
-    shift:                              '~'
-    ctrl, alt, meta:                    none
-}
-
-key MINUS {
-    label, number:                      '-'
-    base:                               '-'
-    shift:                              '_'
-    ctrl, alt, meta:                    none
-}
-
-key EQUALS {
-    label, number:                      '='
-    base:                               '='
-    shift:                              '+'
-    ctrl, alt, meta:                    none
-}
-
-key LEFT_BRACKET {
-    label, number:                      '['
-    base:                               '['
-    shift:                              '{'
-    ctrl, alt, meta:                    none
-}
-
-key RIGHT_BRACKET {
-    label, number:                      ']'
-    base:                               ']'
-    shift:                              '}'
-    ctrl, alt, meta:                    none
-}
-
-key BACKSLASH {
-    label, number:                      '\\'
-    base:                               '\\'
-    shift:                              '|'
-    ctrl, alt, meta:                    none
-}
-
-key SEMICOLON {
-    label, number:                      ';'
-    base:                               ';'
-    shift:                              ':'
-    ctrl, alt, meta:                    none
-}
-
-key APOSTROPHE {
-    label, number:                      '\''
-    base:                               '\''
-    shift:                              '"'
-    ctrl, alt, meta:                    none
-}
diff --git a/data/keyboards/Motorola_Bluetooth_Wireless_Keyboard.kl b/data/keyboards/Motorola_Bluetooth_Wireless_Keyboard.kl
index eab78a0..87b3c32 100644
--- a/data/keyboards/Motorola_Bluetooth_Wireless_Keyboard.kl
+++ b/data/keyboards/Motorola_Bluetooth_Wireless_Keyboard.kl
@@ -66,6 +66,7 @@
 key 52    PERIOD
 key 53    SLASH
 key 54    SHIFT_RIGHT
+key 56    ALT_LEFT
 key 57    SPACE
 key 58    CAPS_LOCK
 key 59    F1
@@ -77,6 +78,9 @@
 key 65    F7
 key 66    F8
 key 67    F9
+key 68    F10
+key 87    F11
+key 88    F12
 key 97    CTRL_RIGHT
 key 102   HOME
 key 103   DPAD_UP
@@ -84,7 +88,6 @@
 key 106   DPAD_RIGHT
 key 107   MOVE_END
 key 108   DPAD_DOWN
-key 110   INSERT
 key 111   FORWARD_DEL
 key 113   VOLUME_MUTE
 key 114   VOLUME_DOWN
@@ -95,3 +98,4 @@
 key 164   MEDIA_PLAY_PAUSE
 key 165   MEDIA_PREVIOUS
 key 166   MEDIA_STOP
+# key 226  tbd reserved key
diff --git a/data/keyboards/common.mk b/data/keyboards/common.mk
index 3f05edb..5c2a75d 100644
--- a/data/keyboards/common.mk
+++ b/data/keyboards/common.mk
@@ -16,15 +16,16 @@
 # Used by Android.mk and keyboards.mk.
 
 keylayouts := \
+    Apple_Wireless_Keyboard.kl \
     AVRCP.kl \
     Generic.kl \
+    Logitech_USB_Receiver.kl \
     Motorola_Bluetooth_Wireless_Keyboard.kl \
     qwerty.kl \
     qwerty2.kl
 
 keycharmaps := \
     Generic.kcm \
-    Virtual.kcm \
-    Motorola_Bluetooth_Wireless_Keyboard.kcm \
     qwerty.kcm \
-    qwerty2.kcm
+    qwerty2.kcm \
+    Virtual.kcm