Home > xbmc > XBMC 9.11 Annoyances

XBMC 9.11 Annoyances

February 21st, 2010 Leave a comment Go to comments

When I upgraded from XBMC 9.04.1 to 9.11 I discovered two major annoyances.

  1. The only method I have to access the playlist with my remote in “keyboard mode” was to select the playlist option from the on-screen menu in the Project Mayhem III skin, yet the new Confluence skin in 9.11 is missing the playlist option.
  2. The “Play” button on my remote control and media keyboard no longer enqueued content, they only worked to pause/resume playback.

Problem 1 was fixed easily.. I downloaded and installed the Project Mayhem III skin that was removed from XBMC in 9.11. I don’t understand why they did this. I can understand why they changed the default skin for something that looked better on HD outputs, but they shouldn’t have removed Project Mayhem III completely, it is such a better skin (in my opinion) and is definitely better for lower resolution displays.

Problem 2 was not so easy. In fact I would go so far as to say it was a right royal pain in the arse, completely killed the ease-of-use so much so that we stopped using it until I fixed it and still has no clear explanation for the cause.

In 9.04.1, pressing the Play/Pause button on the remote generates Action 79 (guilib/Key.h):

#define ACTION_PLAYER_PLAY 79 // Play current song. Unpauses song and sets playspeed to 1x. global action, can be used anywhere

In 9.11, the same keypress in the same configuration generates Action 12:

#define ACTION_PAUSE 12

In 9.04.1 (on Slackware), the keymap is specified in /usr/share/xbmc/system/Keymap.xml:

<keymap>
  <global>
    <keyboard>
      ...
      <play_pause>Pause</play_pause>
      ...
    </keyboard>
  </global>
</keymap>

In 9.11 (on Slackware), the keymap is specified in /usr/share/xbmc/system/keymaps/keyboard.xml:

<keymap>
  <global>
    <keyboard>
      ...
      <play_pause>Pause</play_pause>
      ...
    </keyboard>
  </global>
</keymap>

In both cases the keymap is mapping the Play/Pause button to the Pause action and there is no other definition in either set of keymaps to override the definition for specific menus.

Given the above, for both 9.04.1 and 9.11 the expected behaviour should be for the play_pause button to generate Action 12 (ACTION_PAUSE) and function only as a pause button and not play or enqueue content from a menu, just as it has been doing so far in 9.11. However, in 9.04.1 it hasn’t been doing this, it has been generating Action 79 (ACTION_PLAYER_PLAY) and therefore acting as a pause during playback, but as a play/enqueue button in menus.

For the life of me I can’t figure out why. Is it just a bug? Was it just not doing what it was supposed to in 9.04.1 and it was fixed for 9.11? If this is the case why would the chosen behaviour for play_pause be only pause? What is the purpose of Action 12? Surely you would never want a pause button if all it does is implement only one function that is already covered by Action 79?

Thankfully, there is a simple solution that makes it just work for the time being. What you need to do is remap the Play/Pause button from Pause to Play, i.e. from Action 12 to Action 79. You can do this by creating a keymap xml file in your home directory, but I choose to change it in the installation directory so that the change is made for all user accounts.

Edit /usr/share/xbmc/system/keymaps/keyboard.xml and change:

<play_pause>Pause</play_pause>

to

<play_pause>Play</play_pause>

Having done this, 9.11 is works perfectly and as expected, pausing/resuming playback and also acting to enqueue highlighted menu items.

Categories: xbmc Tags: , , ,
  1. No comments yet.
  1. No trackbacks yet.

Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).