2014-03-19, 04:41
Understanding LIRC and XBMC
You push a button on your remote (lircd.conf), That button is seen by the XBMC translator (Lircmap.xml), XBMC starts the requsted command (remote.xml)
Lets trace it backwards.
<play>Play</play> The one in RED is the remote.xml command
<play>KEY_GO</play> is the Lircmap.xml Translated name that points to lircd.conf KEY_GO button
KEY_GO is the actual button name on the remote in lircd.conf
XBMC performs a command Play (remote.xml)
The lower case play in the angle brackets is the (Lircmap.xml) translated name
Then we go to the Lircmap.xml to see what Lirc button holds the value of the lowercase play above.
So we expect to see <play>*******</play> with some value in between the angle brackets.
Whatever value is there is the REAL name of our button on the remote as defined in lircd.conf. Remember, we can map any button to any function.
The actual name of the button could be STOP if we wanted to (kinda dumb but it could be) The REAL button name on the remote is NOT required to have anything to logically do with the name of the command you want to perform
Just to illustrate we called it the KEY_GO button
So to sum it up
XBMC sent a command (Remember we are going in reverse) called Play
That Play command is tied to the Lircmap.xml <play></play>
That Lircmap.xml <play></play> is tied to the real button on the remote that is called KEY_GO in lircd.conf
remote.xml
Lircmap.xml
lircd.conf
Clear as MUD?
You push a button on your remote (lircd.conf), That button is seen by the XBMC translator (Lircmap.xml), XBMC starts the requsted command (remote.xml)
Lets trace it backwards.
<play>Play</play> The one in RED is the remote.xml command
<play>KEY_GO</play> is the Lircmap.xml Translated name that points to lircd.conf KEY_GO button
KEY_GO is the actual button name on the remote in lircd.conf
XBMC performs a command Play (remote.xml)
The lower case play in the angle brackets is the (Lircmap.xml) translated name
Then we go to the Lircmap.xml to see what Lirc button holds the value of the lowercase play above.
So we expect to see <play>*******</play> with some value in between the angle brackets.
Whatever value is there is the REAL name of our button on the remote as defined in lircd.conf. Remember, we can map any button to any function.
The actual name of the button could be STOP if we wanted to (kinda dumb but it could be) The REAL button name on the remote is NOT required to have anything to logically do with the name of the command you want to perform
Just to illustrate we called it the KEY_GO button
So to sum it up
XBMC sent a command (Remember we are going in reverse) called Play
That Play command is tied to the Lircmap.xml <play></play>
That Lircmap.xml <play></play> is tied to the real button on the remote that is called KEY_GO in lircd.conf
remote.xml
Code:
<keymap>
<global>
<remote>
<play>Play</play>
</remote>
</global>
</keymap>
Lircmap.xml
Code:
<lircmap>
<remote device=""My-Remote-Name">
<play>KEY_GO</play>
</remote>
</lircmap>
lircd.conf
Code:
begin remote
name "My-Remote-Name"
bits 5
flags RC6|CONST_LENGTH
eps 30
aeps 100
header 2662 836
one 452 429
zero 452 429
pre_data_bits 32
pre_data 0x1BFF83DF
gap 106001
toggle_bit_mask 0x8000
rc6_mask 0x100000000
begin codes
KEY_GO 0x0F
end codes
end remote
Clear as MUD?