LIRC is software that allows you to decode and send infra-red signals of most commonly used remote controls.
A custom Lircmap.xml - This file merely defines the translation, bridging a LIRC_button to a XBMC_button. The file is literally named Lircmap.xml and is stored in the userdata directory. Do not confuse the Lircmap.xml with Keyboard.xml.
LIRC_Button - what your lircd.conf calls the physical button on your remote control.
XBMC_button - an XBMC internal button title.
device name - is defined in your lircd.conf file in the "name" field.
This information can be had using the test application "irw" and then hitting some buttons. More on this in the Lirc and Lircmap.xml#Testing Lirc Output section below.
1.1 File format
Lircmap.xml format is as follows:
<lircmap> <remote device="devicename"> <XBMC_button>LIRC_button</XBMC_button> ... </remote> </lircmap>
1.1.1 Device name
The device name is defined in your lircd.conf file in the "name" field. This information can be had using the test application "irw" and then hitting some buttons. More on this in the Lirc and Lircmap.xml#Testing Lirc Output section below.
There are two type of XBMC_buttons in XBMC.
- Predefined Buttons are labelled using their button title such as:
<left> <right> <title> <menu>
- Customized buttons are for people who require more buttons than are defined by default. For example;
<obc1>BUTTON1</obc1> ... <obc254>BUTTON254</obc254>
Note : These obc buttons must be defined in keymap.xml under the [[<universalremote>]] heading
FYI : obc stands for original button code and is a legacy of the old xbox IR remote system
1.2 Testing Lirc Output
use the command 'irw' to test your LIRC configuration
xbmc@xbmclinux:~$ irw 0000000000040004 00 ARROW_UP Cyp_Se_WitheHome 0000000000040004 00 VOLUME_UP Cyp_Se_WitheHome 0000000000040004 00 NUMPAD_6 Cyp_Se_WitheHome 0000000000040004 00 INFO Cyp_Se_WitheHome
In this example Cyp_Se_WitheHome is the device name ARROW_UP, VOLUME_UP, NUMPAD_6, INFO are button names
If you wish to redefine the button names it can be done in /etc/lircd.conf