PDA

View Full Version : Context sensitive keymap.xml to allow many to one funtion mapping


xexe
2009-02-13, 11:58
I was unsure what to title this thread as I understand it is a non trivial idea.

Basically i builds upon the ideas of the "linux mce" project where one of its design goals was to mimise the number of button presses.

Trying to teach the wife how to use XBMC is hard because there are so many buttons on the remote that are needed to do anything.

What occurred to me though is that in a number of scenarios there are is a much smaller subset of controls that are possible.

Example will help understand:

Buttons: play, stop, ff, rw, skip fwd, skip back, pause, enter
Context: you are highlighted on a video you want to play in library view or video mode

In this scenario you need to press the enter button to start the video. However in this context the "play, stop, ff, rw, skip fwd, skip back, pause" buttons are meanigless and do nothing. Why not allow all of them to do this task.

In many scenarios you can build a similar simple button mapping.

Again I understand this is non trivial and i suspect very hard to code? however the logic is sound and it does make XBMC easier to use or rather easier to not get wrong.

the idea is not completely fleshed out but it is worth considering. XBMC just needs way to many remote control buttons to be truely idiot proof. Dont believe me try being a fly on the wall explaining why this popup has happened and how to get out of it to the mrs.

Open minded opinions?

jmarshall
2009-02-13, 23:36
What if a movie (or some music) is already playing, and you are focused on another movie or the same movie, or another song, or a picture, or... Which context are you in now?

Cheers,
Jonathan

digitalhigh
2009-02-14, 03:00
What are you using for a controller now? I thought that just editing the crap out of the keymap.xml file would let you make any button you wanted do whatever you wanted where you want it to happen. If you have a remote with arrows, a select button, a back button, and an info button, you're good to go. Provided the skin you're using has good OSD stuff, you don't really need to have a "play/pause/stop/etc." button. Oh, and volume.

Maybe I'm missing something (as I have a tendency of doing), but I don't see where the confusion comes in. If you're in movie view, map all the buttons you listed to be the "enter" button.


<MyVideoLibrary>
<remote>
<three>VolumeUp</three>
<six>VolumeDown</six>
<nine>Mute</nine>
<play>Select</play>
<pause>Select</pause>
<stop>Select</stop>
<forward>Select</forward>
<reverse>Select</reverse>
<left>Left</left>
<right>Right</right>
<up>Up</up>
<down>Down</down>
<select>Select</select>
<pageplus>PageUp</pageplus>
<pageminus>PageDown</pageminus>
<back>ParentDir</back>
<menu>PreviousMenu</menu>
<title>ContextMenu</title>
<info>Info</info>
<skipplus>SkipNext</skipplus>
...


Just make sure you don't overwrite the stop and fullscreen commands, and you should be allright...

migueld
2009-02-14, 07:48
I think I know what you are looking for. I suggest that you check out the keymap for the Apple Remote. With this keymap the "enter" key does both, enter and play, depending on the context. I'm not sure if you can use this keymap directly; it will probably require some work.

I do agree that there is an issue. This has been discussed before but there hasn't been a solution yet AFAIK. The problem is that the keyboard keymap is inappropriate for mapping to remotes mainly because it has too many keys.

digitalhigh
2009-02-14, 10:56
I think I know what you are looking for. I suggest that you check out the keymap for the Apple Remote. With this keymap the "enter" key does both, enter and play, depending on the context. I'm not sure if you can use this keymap directly; it will probably require some work.

I do agree that there is an issue. This has been discussed before but there hasn't been a solution yet AFAIK. The problem is that the keyboard keymap is inappropriate for mapping to remotes mainly because it has too many keys.

They made keymap.xml flexible for this particular purpose....

xexe
2009-02-14, 14:24
What if a movie (or some music) is already playing, and you are focused on another movie or the same movie, or another song, or a picture, or... Which context are you in now?

Cheers,
Jonathan

yes i can see where that would be a problem and would complicate matters. However where we are at this now is there are just too many buttons. I can use it and I am fine but try and explain in one sitting how to use the remote to a new XBMC user. You simply cant its way to complicated with far to many permutations. Your example is a case in point XBMC is extremely powerful but its getting harder and harder to use simply from a remote.

Some of the suggestions of per view button mapping are good but this quicky would get very complicated to maintain done on a per user basis. A change in XBMC would either mean you now need a button you previously mapped or what you expect to happen doesn't. this needs to be core to XBMC and not a cool user tweak to be of any long term benefit.

Linux MCE is a good case in point. Forgetting fancy accelerometer remote for a second the number of buttons needed is minuscule.

jmarshall
2009-02-15, 01:22
Simplify your keymap. As migueld points out, the apple remote has 6 buttons (10 with hold) and can do (almost) everything, most of it intuitively.

Generate a better keymap for whatever remote you are using, and it'll certainly be added to SVN.

Cheers,
Jonathan