From 16e8538a14c8676c4cee3567f801175fd83e1efc Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Mon, 13 Oct 2008 22:31:14 +0000 Subject: [PATCH] - Fix PS3 BD remote input event generation --- ...PS3-BD-remote-input-event-generation.patch | 615 ++++++++++++++++++ bluez.spec | 7 +- 2 files changed, 621 insertions(+), 1 deletion(-) create mode 100644 0001-Fix-PS3-BD-remote-input-event-generation.patch diff --git a/0001-Fix-PS3-BD-remote-input-event-generation.patch b/0001-Fix-PS3-BD-remote-input-event-generation.patch new file mode 100644 index 0000000..5dcf3e0 --- /dev/null +++ b/0001-Fix-PS3-BD-remote-input-event-generation.patch @@ -0,0 +1,615 @@ +From 1fff1e0b9ef38972549875d78e94849494f1264b Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Mon, 13 Oct 2008 23:24:10 +0100 +Subject: [PATCH] Fix PS3 BD remote input event generation + +- Fix byte-reading in the decode function by using a guint8, instead +of an int, we were overreading and were getting keycodes of +0xffffff44 when we wanted a single byte of 0x44. +- Remove use of KEY_REMOTE_X, those keys never got upstream, and the +values they were defined at are now used for completely different +keys +- Update uinput.h with the latest keycodes from 2.6.27 +--- + common/uinput.h | 340 ++++++++++++++++++++++++++++++++++++++---------------- + input/fakehid.c | 54 ++------- + 2 files changed, 251 insertions(+), 143 deletions(-) + +diff --git a/common/uinput.h b/common/uinput.h +index dca8782..b8c0ff4 100644 +--- a/common/uinput.h ++++ b/common/uinput.h +@@ -52,7 +52,16 @@ extern "C" { + #define SYN_REPORT 0 + #define SYN_CONFIG 1 + +-/* Keys and buttons */ ++/* ++ * Keys and buttons ++ * ++ * Most of the keys/buttons are modeled after USB HUT 1.12 ++ * (see http://www.usb.org/developers/hidpage). ++ * Abbreviations in the comments: ++ * AC - Application Control ++ * AL - Application Launch Button ++ * SC - System Control ++ */ + + #define KEY_RESERVED 0 + #define KEY_ESC 1 +@@ -138,18 +147,18 @@ extern "C" { + #define KEY_KP3 81 + #define KEY_KP0 82 + #define KEY_KPDOT 83 +-#define KEY_103RD 84 +-#define KEY_F13 85 ++ ++#define KEY_ZENKAKUHANKAKU 85 + #define KEY_102ND 86 + #define KEY_F11 87 + #define KEY_F12 88 +-#define KEY_F14 89 +-#define KEY_F15 90 +-#define KEY_F16 91 +-#define KEY_F17 92 +-#define KEY_F18 93 +-#define KEY_F19 94 +-#define KEY_F20 95 ++#define KEY_RO 89 ++#define KEY_KATAKANA 90 ++#define KEY_HIRAGANA 91 ++#define KEY_HENKAN 92 ++#define KEY_KATAKANAHIRAGANA 93 ++#define KEY_MUHENKAN 94 ++#define KEY_KPJPCOMMA 95 + #define KEY_KPENTER 96 + #define KEY_RIGHTCTRL 97 + #define KEY_KPSLASH 98 +@@ -170,51 +179,53 @@ extern "C" { + #define KEY_MUTE 113 + #define KEY_VOLUMEDOWN 114 + #define KEY_VOLUMEUP 115 +-#define KEY_POWER 116 ++#define KEY_POWER 116 /* SC System Power Down */ + #define KEY_KPEQUAL 117 + #define KEY_KPPLUSMINUS 118 + #define KEY_PAUSE 119 +-#define KEY_F21 120 +-#define KEY_F22 121 +-#define KEY_F23 122 +-#define KEY_F24 123 +-#define KEY_KPCOMMA 124 ++ ++#define KEY_KPCOMMA 121 ++#define KEY_HANGEUL 122 ++#define KEY_HANGUEL KEY_HANGEUL ++#define KEY_HANJA 123 ++#define KEY_YEN 124 + #define KEY_LEFTMETA 125 + #define KEY_RIGHTMETA 126 + #define KEY_COMPOSE 127 + +-#define KEY_STOP 128 ++#define KEY_STOP 128 /* AC Stop */ + #define KEY_AGAIN 129 +-#define KEY_PROPS 130 +-#define KEY_UNDO 131 ++#define KEY_PROPS 130 /* AC Properties */ ++#define KEY_UNDO 131 /* AC Undo */ + #define KEY_FRONT 132 +-#define KEY_COPY 133 +-#define KEY_OPEN 134 +-#define KEY_PASTE 135 +-#define KEY_FIND 136 +-#define KEY_CUT 137 +-#define KEY_HELP 138 +-#define KEY_MENU 139 +-#define KEY_CALC 140 ++#define KEY_COPY 133 /* AC Copy */ ++#define KEY_OPEN 134 /* AC Open */ ++#define KEY_PASTE 135 /* AC Paste */ ++#define KEY_FIND 136 /* AC Search */ ++#define KEY_CUT 137 /* AC Cut */ ++#define KEY_HELP 138 /* AL Integrated Help Center */ ++#define KEY_MENU 139 /* Menu (show menu) */ ++#define KEY_CALC 140 /* AL Calculator */ + #define KEY_SETUP 141 +-#define KEY_SLEEP 142 +-#define KEY_WAKEUP 143 +-#define KEY_FILE 144 ++#define KEY_SLEEP 142 /* SC System Sleep */ ++#define KEY_WAKEUP 143 /* System Wake Up */ ++#define KEY_FILE 144 /* AL Local Machine Browser */ + #define KEY_SENDFILE 145 + #define KEY_DELETEFILE 146 + #define KEY_XFER 147 + #define KEY_PROG1 148 + #define KEY_PROG2 149 +-#define KEY_WWW 150 ++#define KEY_WWW 150 /* AL Internet Browser */ + #define KEY_MSDOS 151 +-#define KEY_COFFEE 152 ++#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ ++#define KEY_SCREENLOCK KEY_COFFEE + #define KEY_DIRECTION 153 + #define KEY_CYCLEWINDOWS 154 + #define KEY_MAIL 155 +-#define KEY_BOOKMARKS 156 ++#define KEY_BOOKMARKS 156 /* AC Bookmarks */ + #define KEY_COMPUTER 157 +-#define KEY_BACK 158 +-#define KEY_FORWARD 159 ++#define KEY_BACK 158 /* AC Back */ ++#define KEY_FORWARD 159 /* AC Forward */ + #define KEY_CLOSECD 160 + #define KEY_EJECTCD 161 + #define KEY_EJECTCLOSECD 162 +@@ -224,50 +235,90 @@ extern "C" { + #define KEY_STOPCD 166 + #define KEY_RECORD 167 + #define KEY_REWIND 168 +-#define KEY_PHONE 169 ++#define KEY_PHONE 169 /* Media Select Telephone */ + #define KEY_ISO 170 +-#define KEY_CONFIG 171 +-#define KEY_HOMEPAGE 172 +-#define KEY_REFRESH 173 +-#define KEY_EXIT 174 ++#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ ++#define KEY_HOMEPAGE 172 /* AC Home */ ++#define KEY_REFRESH 173 /* AC Refresh */ ++#define KEY_EXIT 174 /* AC Exit */ + #define KEY_MOVE 175 + #define KEY_EDIT 176 + #define KEY_SCROLLUP 177 + #define KEY_SCROLLDOWN 178 + #define KEY_KPLEFTPAREN 179 + #define KEY_KPRIGHTPAREN 180 +- +-#define KEY_INTL1 181 +-#define KEY_INTL2 182 +-#define KEY_INTL3 183 +-#define KEY_INTL4 184 +-#define KEY_INTL5 185 +-#define KEY_INTL6 186 +-#define KEY_INTL7 187 +-#define KEY_INTL8 188 +-#define KEY_INTL9 189 +-#define KEY_LANG1 190 +-#define KEY_LANG2 191 +-#define KEY_LANG3 192 +-#define KEY_LANG4 193 +-#define KEY_LANG5 194 +-#define KEY_LANG6 195 +-#define KEY_LANG7 196 +-#define KEY_LANG8 197 +-#define KEY_LANG9 198 ++#define KEY_NEW 181 /* AC New */ ++#define KEY_REDO 182 /* AC Redo/Repeat */ ++ ++#define KEY_F13 183 ++#define KEY_F14 184 ++#define KEY_F15 185 ++#define KEY_F16 186 ++#define KEY_F17 187 ++#define KEY_F18 188 ++#define KEY_F19 189 ++#define KEY_F20 190 ++#define KEY_F21 191 ++#define KEY_F22 192 ++#define KEY_F23 193 ++#define KEY_F24 194 + + #define KEY_PLAYCD 200 + #define KEY_PAUSECD 201 + #define KEY_PROG3 202 + #define KEY_PROG4 203 + #define KEY_SUSPEND 205 +-#define KEY_CLOSE 206 ++#define KEY_CLOSE 206 /* AC Close */ + #define KEY_PLAY 207 +- +-#define KEY_UNKNOWN 220 +- ++#define KEY_FASTFORWARD 208 ++#define KEY_BASSBOOST 209 ++#define KEY_PRINT 210 /* AC Print */ ++#define KEY_HP 211 ++#define KEY_CAMERA 212 ++#define KEY_SOUND 213 ++#define KEY_QUESTION 214 ++#define KEY_EMAIL 215 ++#define KEY_CHAT 216 ++#define KEY_SEARCH 217 ++#define KEY_CONNECT 218 ++#define KEY_FINANCE 219 /* AL Checkbook/Finance */ ++#define KEY_SPORT 220 ++#define KEY_SHOP 221 ++#define KEY_ALTERASE 222 ++#define KEY_CANCEL 223 /* AC Cancel */ + #define KEY_BRIGHTNESSDOWN 224 + #define KEY_BRIGHTNESSUP 225 ++#define KEY_MEDIA 226 ++ ++#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video ++ outputs (Monitor/LCD/TV-out/etc) */ ++#define KEY_KBDILLUMTOGGLE 228 ++#define KEY_KBDILLUMDOWN 229 ++#define KEY_KBDILLUMUP 230 ++ ++#define KEY_SEND 231 /* AC Send */ ++#define KEY_REPLY 232 /* AC Reply */ ++#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ ++#define KEY_SAVE 234 /* AC Save */ ++#define KEY_DOCUMENTS 235 ++ ++#define KEY_BATTERY 236 ++ ++#define KEY_BLUETOOTH 237 ++#define KEY_WLAN 238 ++#define KEY_UWB 239 ++ ++#define KEY_UNKNOWN 240 ++ ++#define KEY_VIDEO_NEXT 241 /* drive next video source */ ++#define KEY_VIDEO_PREV 242 /* drive previous video source */ ++#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ ++#define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */ ++#define KEY_DISPLAY_OFF 245 /* display device to off state */ ++ ++#define KEY_WIMAX 246 ++ ++/* Range 248 - 255 is reserved for special needs of AT keyboard driver */ + + #define BTN_MISC 0x100 + #define BTN_0 0x100 +@@ -348,15 +399,15 @@ extern "C" { + #define KEY_CLEAR 0x163 + #define KEY_POWER2 0x164 + #define KEY_OPTION 0x165 +-#define KEY_INFO 0x166 ++#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ + #define KEY_TIME 0x167 + #define KEY_VENDOR 0x168 + #define KEY_ARCHIVE 0x169 +-#define KEY_PROGRAM 0x16a ++#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ + #define KEY_CHANNEL 0x16b + #define KEY_FAVORITES 0x16c + #define KEY_EPG 0x16d +-#define KEY_PVR 0x16e ++#define KEY_PVR 0x16e /* Media Select Home */ + #define KEY_MHP 0x16f + #define KEY_LANGUAGE 0x170 + #define KEY_TITLE 0x171 +@@ -366,36 +417,36 @@ extern "C" { + #define KEY_MODE 0x175 + #define KEY_KEYBOARD 0x176 + #define KEY_SCREEN 0x177 +-#define KEY_PC 0x178 +-#define KEY_TV 0x179 +-#define KEY_TV2 0x17a +-#define KEY_VCR 0x17b +-#define KEY_VCR2 0x17c +-#define KEY_SAT 0x17d ++#define KEY_PC 0x178 /* Media Select Computer */ ++#define KEY_TV 0x179 /* Media Select TV */ ++#define KEY_TV2 0x17a /* Media Select Cable */ ++#define KEY_VCR 0x17b /* Media Select VCR */ ++#define KEY_VCR2 0x17c /* VCR Plus */ ++#define KEY_SAT 0x17d /* Media Select Satellite */ + #define KEY_SAT2 0x17e +-#define KEY_CD 0x17f +-#define KEY_TAPE 0x180 ++#define KEY_CD 0x17f /* Media Select CD */ ++#define KEY_TAPE 0x180 /* Media Select Tape */ + #define KEY_RADIO 0x181 +-#define KEY_TUNER 0x182 ++#define KEY_TUNER 0x182 /* Media Select Tuner */ + #define KEY_PLAYER 0x183 + #define KEY_TEXT 0x184 +-#define KEY_DVD 0x185 ++#define KEY_DVD 0x185 /* Media Select DVD */ + #define KEY_AUX 0x186 + #define KEY_MP3 0x187 + #define KEY_AUDIO 0x188 + #define KEY_VIDEO 0x189 + #define KEY_DIRECTORY 0x18a + #define KEY_LIST 0x18b +-#define KEY_MEMO 0x18c ++#define KEY_MEMO 0x18c /* Media Select Messages */ + #define KEY_CALENDAR 0x18d + #define KEY_RED 0x18e + #define KEY_GREEN 0x18f + #define KEY_YELLOW 0x190 + #define KEY_BLUE 0x191 +-#define KEY_CHANNELUP 0x192 +-#define KEY_CHANNELDOWN 0x193 ++#define KEY_CHANNELUP 0x192 /* Channel Increment */ ++#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ + #define KEY_FIRST 0x194 +-#define KEY_LAST 0x195 ++#define KEY_LAST 0x195 /* Recall Last */ + #define KEY_AB 0x196 + #define KEY_NEXT 0x197 + #define KEY_RESTART 0x198 +@@ -406,14 +457,79 @@ extern "C" { + #define KEY_DIGITS 0x19d + #define KEY_TEEN 0x19e + #define KEY_TWEN 0x19f +- +-#define KEY_FRAMEBACK 0x1b2 +-#define KEY_FRAMEFORWARD 0x1b3 +-#define KEY_CONTEXT_MENU 0x1fb +- ++#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ ++#define KEY_GAMES 0x1a1 /* Media Select Games */ ++#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ ++#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ ++#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ ++#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ ++#define KEY_EDITOR 0x1a6 /* AL Text Editor */ ++#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ ++#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ ++#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ ++#define KEY_DATABASE 0x1aa /* AL Database App */ ++#define KEY_NEWS 0x1ab /* AL Newsreader */ ++#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ ++#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ ++#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ ++#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ ++#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ ++#define KEY_LOGOFF 0x1b1 /* AL Logoff */ ++ ++#define KEY_DOLLAR 0x1b2 ++#define KEY_EURO 0x1b3 ++ ++#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ ++#define KEY_FRAMEFORWARD 0x1b5 ++#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ ++#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ ++ ++#define KEY_DEL_EOL 0x1c0 ++#define KEY_DEL_EOS 0x1c1 ++#define KEY_INS_LINE 0x1c2 ++#define KEY_DEL_LINE 0x1c3 ++ ++#define KEY_FN 0x1d0 ++#define KEY_FN_ESC 0x1d1 ++#define KEY_FN_F1 0x1d2 ++#define KEY_FN_F2 0x1d3 ++#define KEY_FN_F3 0x1d4 ++#define KEY_FN_F4 0x1d5 ++#define KEY_FN_F5 0x1d6 ++#define KEY_FN_F6 0x1d7 ++#define KEY_FN_F7 0x1d8 ++#define KEY_FN_F8 0x1d9 ++#define KEY_FN_F9 0x1da ++#define KEY_FN_F10 0x1db ++#define KEY_FN_F11 0x1dc ++#define KEY_FN_F12 0x1dd ++#define KEY_FN_1 0x1de ++#define KEY_FN_2 0x1df ++#define KEY_FN_D 0x1e0 ++#define KEY_FN_E 0x1e1 ++#define KEY_FN_F 0x1e2 ++#define KEY_FN_S 0x1e3 ++#define KEY_FN_B 0x1e4 ++ ++#define KEY_BRL_DOT1 0x1f1 ++#define KEY_BRL_DOT2 0x1f2 ++#define KEY_BRL_DOT3 0x1f3 ++#define KEY_BRL_DOT4 0x1f4 ++#define KEY_BRL_DOT5 0x1f5 ++#define KEY_BRL_DOT6 0x1f6 ++#define KEY_BRL_DOT7 0x1f7 ++#define KEY_BRL_DOT8 0x1f8 ++#define KEY_BRL_DOT9 0x1f9 ++#define KEY_BRL_DOT10 0x1fa ++ ++/* We avoid low common keys in module aliases so they don't get huge. */ ++#define KEY_MIN_INTERESTING KEY_MUTE + #define KEY_MAX 0x1ff ++#define KEY_CNT (KEY_MAX+1) + +-/* Relative axes */ ++/* ++ * Relative axes ++ */ + + #define REL_X 0x00 + #define REL_Y 0x01 +@@ -426,8 +542,11 @@ extern "C" { + #define REL_WHEEL 0x08 + #define REL_MISC 0x09 + #define REL_MAX 0x0f ++#define REL_CNT (REL_MAX+1) + +-/* Absolute axes */ ++/* ++ * Absolute axes ++ */ + + #define ABS_X 0x00 + #define ABS_Y 0x01 +@@ -456,20 +575,26 @@ extern "C" { + #define ABS_VOLUME 0x20 + #define ABS_MISC 0x28 + #define ABS_MAX 0x3f ++#define ABS_CNT (ABS_MAX+1) + +-/* Switch events */ ++/* ++ * Switch events ++ */ + +-#define SW_0 0x00 +-#define SW_1 0x01 +-#define SW_2 0x02 +-#define SW_3 0x03 +-#define SW_4 0x04 +-#define SW_5 0x05 +-#define SW_6 0x06 +-#define SW_7 0x07 ++#define SW_LID 0x00 /* set = lid shut */ ++#define SW_TABLET_MODE 0x01 /* set = tablet mode */ ++#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ ++#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" ++ set = radio enabled */ ++#define SW_RADIO SW_RFKILL_ALL /* deprecated */ ++#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ ++#define SW_DOCK 0x05 /* set = plugged into dock */ + #define SW_MAX 0x0f ++#define SW_CNT (SW_MAX+1) + +-/* Misc events */ ++/* ++ * Misc events ++ */ + + #define MSC_SERIAL 0x00 + #define MSC_PULSELED 0x01 +@@ -477,8 +602,11 @@ extern "C" { + #define MSC_RAW 0x03 + #define MSC_SCAN 0x04 + #define MSC_MAX 0x07 ++#define MSC_CNT (MSC_MAX+1) + +-/* LEDs */ ++/* ++ * LEDs ++ */ + + #define LED_NUML 0x00 + #define LED_CAPSL 0x01 +@@ -492,21 +620,29 @@ extern "C" { + #define LED_MAIL 0x09 + #define LED_CHARGING 0x0a + #define LED_MAX 0x0f ++#define LED_CNT (LED_MAX+1) + +-/* Autorepeat values */ ++/* ++ * Autorepeat values ++ */ + + #define REP_DELAY 0x00 + #define REP_PERIOD 0x01 + #define REP_MAX 0x01 + +-/* Sounds */ ++/* ++ * Sounds ++ */ + + #define SND_CLICK 0x00 + #define SND_BELL 0x01 + #define SND_TONE 0x02 + #define SND_MAX 0x07 ++#define SND_CNT (SND_MAX+1) + +-/* Identifiers */ ++/* ++ * IDs. ++ */ + + #define ID_BUS 0 + #define ID_VENDOR 1 +@@ -518,6 +654,7 @@ extern "C" { + #define BUS_USB 0x03 + #define BUS_HIL 0x04 + #define BUS_BLUETOOTH 0x05 ++#define BUS_VIRTUAL 0x06 + + #define BUS_ISA 0x10 + #define BUS_I8042 0x11 +@@ -530,6 +667,7 @@ extern "C" { + #define BUS_I2C 0x18 + #define BUS_HOST 0x19 + #define BUS_GSC 0x1A ++#define BUS_ATARI 0x1B + + /* User input interface */ + +diff --git a/input/fakehid.c b/input/fakehid.c +index d752d85..ead67bd 100644 +--- a/input/fakehid.c ++++ b/input/fakehid.c +@@ -44,37 +44,6 @@ + #include "fakehid.h" + #include "uinput.h" + +-#ifndef KEY_REMOTE_1 +-#define KEY_REMOTE_1 0x1b6 +-#endif +-#ifndef KEY_REMOTE_2 +-#define KEY_REMOTE_2 0x1b7 +-#endif +-#ifndef KEY_REMOTE_3 +-#define KEY_REMOTE_3 0x1b8 +-#endif +-#ifndef KEY_REMOTE_4 +-#define KEY_REMOTE_4 0x1b9 +-#endif +-#ifndef KEY_REMOTE_5 +-#define KEY_REMOTE_5 0x1ba +-#endif +-#ifndef KEY_REMOTE_6 +-#define KEY_REMOTE_6 0x1bb +-#endif +-#ifndef KEY_REMOTE_7 +-#define KEY_REMOTE_7 0x1bc +-#endif +-#ifndef KEY_REMOTE_8 +-#define KEY_REMOTE_8 0x1bd +-#endif +-#ifndef KEY_REMOTE_9 +-#define KEY_REMOTE_9 0x1be +-#endif +-#ifndef KEY_REMOTE_0 +-#define KEY_REMOTE_0 0x1bf +-#endif +- + #define PS3_FLAGS_MASK 0xFFFFFF00 + + enum ps3remote_special_keys { +@@ -126,16 +95,16 @@ static unsigned int ps3remote_keymap[] = { + [0x63] = KEY_SUBTITLE, + [0x0f] = KEY_CLEAR, + [0x28] = KEY_TIME, +- [0x00] = KEY_REMOTE_1, +- [0x01] = KEY_REMOTE_2, +- [0x02] = KEY_REMOTE_3, +- [0x03] = KEY_REMOTE_4, +- [0x04] = KEY_REMOTE_5, +- [0x05] = KEY_REMOTE_6, +- [0x06] = KEY_REMOTE_7, +- [0x07] = KEY_REMOTE_8, +- [0x08] = KEY_REMOTE_9, +- [0x09] = KEY_REMOTE_0, ++ [0x00] = KEY_1, ++ [0x01] = KEY_2, ++ [0x02] = KEY_3, ++ [0x03] = KEY_4, ++ [0x04] = KEY_5, ++ [0x05] = KEY_6, ++ [0x06] = KEY_7, ++ [0x07] = KEY_8, ++ [0x08] = KEY_9, ++ [0x09] = KEY_0, + [0x81] = KEY_RED, + [0x82] = KEY_GREEN, + [0x80] = KEY_BLUE, +@@ -178,7 +147,8 @@ static int ps3remote_decode(char *buff, int size, unsigned int *value) + { + static unsigned int lastkey = 0; + static unsigned int lastmask = 0; +- int retval, mask, key, i; ++ int retval, mask, i; ++ guint8 key; + + if (size < 12) { + error("Got a shorter packet! (size %i)\n", size); +-- +1.6.0.1 + diff --git a/bluez.spec b/bluez.spec index 0b04a54..ab741ee 100644 --- a/bluez.spec +++ b/bluez.spec @@ -1,13 +1,14 @@ Summary: Bluetooth utilities Name: bluez Version: 4.13 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ Group: Applications/System Source: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.gz Source1: bluetooth.init Source2: bluetooth.conf Patch1: bluez-utils-oui-usage.patch +Patch2: 0001-Fix-PS3-BD-remote-input-event-generation.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://www.bluez.org/ @@ -96,6 +97,7 @@ use in Bluetooth applications. %setup -q %patch1 -p0 -b .oui +%patch2 -p1 -b .ps3 %build %configure --enable-cups --enable-hid2hci --enable-dfutool --enable-tools --enable-bccmd --enable-gstreamer --enable-hidd --enable-pand --enable-dund @@ -181,6 +183,9 @@ fi %{_libdir}/alsa-lib/*.so %changelog +* Mon Oct 13 2008 - Bastien Nocera - 4.13-2 +- Fix PS3 BD remote input event generation + * Fri Oct 10 2008 - Bastien Nocera - 4.13-1 - Update to 4.13