Benutzerdefinierte XBMC-Aktionen für Fernbedienungen einrichten

Im Rahmen meines OpenELEC-Systems auf dem RaspberryPi habe ich einige Anpassungen für XBMC vorgenommen, die es ermöglichen, beim Drücken bestimmter Tasten auf der Fernbendienung von mir definierte XBMC-Aktionen auszulösen. OpenELEC benutzt für die Einbindung der Fernbedienung in das System LIRC. Für eine Einführung, wie LIRC funktioniert, verweise ich auf die entsprechende Wiki-Seite auf Ubuntuusers.

Auf meiner Fernbedienung habe ich einige frei konfigurierbare Tasten, die in XBMC momentan keine Aktion auslösen. Diese möchte ich nutzen, um beispielsweise einen „Custom Shutdown-Timer“ zu setzen oder direkt in die Live TV-Anwendung zu wechseln. Einfachheitshalber habe ich Keycodes gewählt, die LIRC bereits bekannt sind, aber von XBMC noch nicht verwendet werden, sodass ich diesbezüglich keine weitere Konfiguration benötige.

Seitens XBMC gibt es zwei Konfigurationen, die vorgenommen werden müssen. Zunächst muss XBMC mitgeteilt werden, dass es auf das Drücken einer bestimmten, bisher noch nicht bekannten Taste der Fernbedienung reagieren soll. Hierfür existiert die Datei Lircmap.xml im Ordner userdata im Konfigurationsverzeichnis (meistens $HOME/.xbmc/) von XBMC. Diese Datei definiert die Zuordnung von Keycodes, die von LIRC gesendet werden, zu XBMC-Aktionen. Die darin vorgenommenen Zuordnungen ergänzen (oder überschreiben!) die globalen Definitionen, die XBMC standardmäßig bereitstellt. Falls diese Datei noch nicht vorhanden ist, kann sie einfach angelegt werden. XBMC übernimmt die darin enthaltene Konfiguration beim nächsten Start. In meinem Falle hat die Datei folgenden Inhalt:

<lircmap>
  <remote device="devinput">
    <livetv>KEY_TUNER</livetv>
    <recordedtv>KEY_PVR</recordedtv>
    <obc100>KEY_ZOOM</obc100>
    <obc101>KEY_LANGUAGE</obc101>
  </remote>
</lircmap>

Hier wird definiert, dass beispielsweise beim Auslösen des Keycodes KEY_TUNER XBMC in die Live TV-Anwendung wechseln soll (Zeile 3). Eine genauere Beschreibung findet sich im XBMC-Wiki. Die möglichen XBMC-Aktionen, die angegeben werden können, sind hier beschrieben. Die beiden letzten Definitionen obc100 und obc101 (Zeilen 5 und 6) definieren frei konfigurierbare Aktionen, die wir benötigen, um eigene Aktionen in XBMC auslösen zu können.

Die zweite Datei, die bearbeitet werden muss, ist remote.xml im Verzeichnis userdata/keymaps. Auch diese Datei kann – falls sie noch nicht vorhanden ist – einfach angelegt werden und wird beim nächsten Start von XBMC berücksichtigt. In dieser Datei werden die Aktionen für die obc-Definitionen in Lircmap.xml zugeordnet. Beispielhaft für die Verwendung dieser Datei hier meine Eintäge:

<keymap>
  <global>
    <universalremote> 
      <obc100>XBMC.AlarmClock(DefaultShutdownTimer,XBMC.ShutDown(),120)</obc100>
      <obc101>XBMC.ActivateWindow(Home)</obc101>
    </universalremote>
  </global>
</keymap>

In Zeile 4 wird beim Drücken der entsprechenden Taste definiert, dass sich XBMC nach 120 Minuten automatisch beenden soll, was im Falle meines OpenELEC-Systems das Ausschalten des RaspberryPis bewirkt. Eine vollständige Beschreibung der Aktionen, die in dieser Datei definiert werden können, finden sich hier.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert