Arrow keys generated by my old ATI Remote Wonder don't work
#1
Question 
I have an ATI remote wonder... the problem is that the ATIRW is really buggy under new OSes, and XBMC & Boxee are the only apps that seem to support the default Remote Wonder logic - which would be great if every other app (including Vista itself) didn't bungle handling the thing in one way or another.

So I started using RW Key Factory/Key Master, which is a keyboard emulator set for the Remote Wonder that completely replaces the old logic. And it works fantastically well for everything except Boxee.

I can't navigate XBMC because the arrow keys don't register. I've set up the arrows on my Remote Wonder to emulate the keyboard arrow keys and they aren't working with XBMC- other keyboard emulation works fine (backspace and escape work find for exiting the current page) but no go with the arrows.

Same problem occurs for me in Boxee... I assume this is a common source issue... and the Boxee forums were absolutely zero help (I'm starting to suspect that the Boxee folks have abandoned the software side until their Boxee box takes off). Oddly, every other app I try works fine.

Is this a known issue?

Is there some built-in remote support within XBMC that could be conflicting with my remote's keyboard-emulation?

Thanks in advance for any insight.
Reply
#2
Hi there and welcome to the forums.

It's not a known issue, no as I doubt there's all that many others in the same boat as you are.

Check your debug log and see whether anything is being registered when you press the arrow keys - it could be that they're being interpreted as something else, whereby a bit of keymap magic will give you what you need.

Feel free to pastebin the Debug Log if you want some further analysis done.

Cheers,
Jonathan
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#3
Grab a copy of mceremote.zip from xbmcmce.sourceforge.net and use the ShowKey app to see what your remote is sending. As Jonathan says, if you turn on debug logging xbmc.log will show you what keys XBMC is receiving.

There is nothing in XBMC that will be messing up the remote handling.

Unless you're wedded to the ATI remote the easiest solution is to buy one of the many MCE remotes out there as they will work out of the box. See http://wiki.xbmc.org/?title=Remote_Control_Reviews for some options.

JR
Reply
#4
Thanks for all your help - I'm impressed how quick and helpful the XBMC community is already.

I'm rather attached to this one just because, as I mentioned above, I've customized it to get it just the way I like it. The remote itself isn't my fixation, just the familiarity of my customizations. Which are actually the source of the problem - I've found the remote works fine when I turn the keyboard emulation suite _off_. The remote's native functionality plays just fine... but I'd like to be able to use other apps and the launching stuff, and the native functionality is FUBAR for playing with Vista and newish apps (it double-registers mouseclicks, for example).

http://pastebin.com/1qsVzpfW <= xbmc.log, although I don't know how to enable additional logging.

Also, clicking left on the remote dirpad (using keyboard emulation) reveals

<left>Notification(Key, left, 3)</left>

Which is _exactly_ the same as the keyboard command that works just fine with XBMC. I push left on the keyboard, it works in XBMC, and it generates the same keycode as pushing left on the RW... which doesn't work with XBMC.
Reply
#5
To turn on debug logging go into Settings, System, Debugging and turn on Enable debug logging. You can tell when it's on because it shows various info like the CPU load at the top of the screen.

Try enabling debug logging (using the mouse to avoid confusing keyboard logging) then press the left on the remote a few times, then disable debug logging again (with the mouse). Close XBMC, open up your xbmc.log in Notepad and look for lines containing " DEBUG: SDLKeyboard". If there are no such lines then XBMC isn't seeing a keystroke. If there are such lines then pop the log on pastebin and we'll have a look.

JR
Reply
#6
jhsrennie Wrote:To turn on debug logging go into Settings, System, Debugging and turn on Enable debug logging. You can tell when it's on because it shows various info like the CPU load at the top of the screen.

Try enabling debug logging (using the mouse to avoid confusing keyboard logging) then press the left on the remote a few times, then disable debug logging again (with the mouse). Close XBMC, open up your xbmc.log in Notepad and look for lines containing " DEBUG: SDLKeyboard". If there are no such lines then XBMC isn't seeing a keystroke. If there are such lines then pop the log on pastebin and we'll have a look.

JR

Hey, I finally got around to trying this - it's registering input but the input is... weird.

http://pastebin.com/B9QrV8yG

Relevant section
Code:
10:11:28 T:5468 M:2235154432   DEBUG: SDLKeyboard: scancode: 72, sym: 264, unicode: 0, modifier: 0
10:11:28 T:5468 M:2235154432   DEBUG: CApplication::OnKey: 61544 pressed, action is 66
10:11:28 T:5468 M:2235080704   DEBUG: SDLKeyboard: scancode: 80, sym: 258, unicode: 0, modifier: 0
10:11:28 T:5468 M:2235080704   DEBUG: CApplication::OnKey: 61538 pressed, action is 60
10:11:28 T:5468 M:2235346944   DEBUG: SDLKeyboard: scancode: 75, sym: 260, unicode: 0, modifier: 0
10:11:28 T:5468 M:2235346944   DEBUG: CApplication::OnKey: 61540 pressed, action is 62
10:11:29 T:5468 M:2235363328   DEBUG: SDLKeyboard: scancode: 77, sym: 262, unicode: 0, modifier: 0
10:11:29 T:5468 M:2235359232   DEBUG: CApplication::OnKey: 61542 pressed, action is 64
10:11:29 T:5468 M:2235265024   DEBUG: SDLKeyboard: scancode: 72, sym: 264, unicode: 0, modifier: 0
10:11:29 T:5468 M:2235265024   DEBUG: CApplication::OnKey: 61544 pressed, action is 66
10:11:30 T:5468 M:2235080704   DEBUG: SDLKeyboard: scancode: 72, sym: 264, unicode: 0, modifier: 0
10:11:30 T:5468 M:2235080704   DEBUG: CApplication::OnKey: 61544 pressed, action is 66
10:11:30 T:5468 M:2235015168   DEBUG: SDLKeyboard: scancode: 72, sym: 264, unicode: 0, modifier: 0
10:11:30 T:5468 M:2235015168   DEBUG: CApplication::OnKey: 61544 pressed, action is 66
10:11:30 T:5468 M:2235011072   DEBUG: SDLKeyboard: scancode: 72, sym: 264, unicode: 0, modifier: 0
10:11:30 T:5468 M:2235011072   DEBUG: CApplication::OnKey: 61544 pressed, action is 66
10:11:30 T:5468 M:2235002880   DEBUG: SDLKeyboard: scancode: 72, sym: 264, unicode: 0, modifier: 0
10:11:30 T:5468 M:2235002880   DEBUG: CApplication::OnKey: 61544 pressed, action is 66
10:11:30 T:5468 M:2234949632   DEBUG: SDLKeyboard: scancode: 80, sym: 258, unicode: 0, modifier: 0
10:11:30 T:5468 M:2234949632   DEBUG: CApplication::OnKey: 61538 pressed, action is 60
10:11:31 T:5468 M:2235346944   DEBUG: SDLKeyboard: scancode: 80, sym: 258, unicode: 0, modifier: 0
10:11:31 T:5468 M:2235346944   DEBUG: CApplication::OnKey: 61538 pressed, action is 60
10:11:31 T:5468 M:2235346944   DEBUG: SDLKeyboard: scancode: 80, sym: 258, unicode: 0, modifier: 0
10:11:31 T:5468 M:2235346944   DEBUG: CApplication::OnKey: 61538 pressed, action is 60
10:11:31 T:5468 M:2235367424   DEBUG: SDLKeyboard: scancode: 80, sym: 258, unicode: 0, modifier: 0
10:11:31 T:5468 M:2235367424   DEBUG: CApplication::OnKey: 61538 pressed, action is 60
10:11:31 T:5468 M:2235342848   DEBUG: SDLKeyboard: scancode: 80, sym: 258, unicode: 0, modifier: 0
10:11:31 T:5468 M:2235342848   DEBUG: CApplication::OnKey: 61538 pressed, action is 60
10:11:31 T:5468 M:2235351040   DEBUG: SDLKeyboard: scancode: 72, sym: 264, unicode: 0, modifier: 0
10:11:31 T:5468 M:2235351040   DEBUG: CApplication::OnKey: 61544 pressed, action is 66
10:11:32 T:5468 M:2235490304   DEBUG: SDLKeyboard: scancode: 80, sym: 258, unicode: 0, modifier: 0
10:11:32 T:5468 M:2235490304   DEBUG: CApplication::OnKey: 61538 pressed, action is 60
10:11:33 T:5468 M:2235645952   DEBUG: SDLKeyboard: scancode: 56, sym: 308, unicode: 0, modifier: 0

Thanks again for any insight you can give.
Reply
#7
The key code is ANDed with 0xF000, which is why the key codes are 61440 and greater. If you convert to hex and subtract 0xF000 you get (for the four keys in your log):

Code:
Key     XBMC code    XBMC Key
61544      0x68      numpadeight
61538      0x62      numpadtwo
61540      0x64      numpadfour
61542      0x66      numpadsix

So the remote is generating key presses from the numeric keypad.

The good news is that you can make these do the same as the arrow keys. Find your userdata folder (e.g. Start/Run and enter %appdata%\xbmc) and within the userdata folder create a folder called keymaps (if it doesn't already exist) and within keymaps create a file called keyboard.xml containing:

Code:
<keymap>
  <global>
    <keyboard>
      <numpadtwo>Down</numpadtwo>
      <numpadfour>Left</numpadfour>
      <numpadsix>Right</numpadsix>
      <numpadeight>Up</numpadeight>
    </keyboard>
  </global>
</keymap>

This configures the numeric keypad keys to execute the same action as the arrow keys and this should make your remote work.

JR
Reply
#8
It worked! You guys are awesome. Thanks for talking me through this mess.

Yeah, just after that I noticed that the keycodes weren't matching up, and suspected that it was putting out numpad codes for some reason...

I guess I get what I deserve for using an abandonded open-source wrapper for an ancient remote... but it really is a rather good remote.
Reply

Logout Mark Read Team Forum Stats Members Help
Arrow keys generated by my old ATI Remote Wonder don't work0