On 06.03.2011 16:56, Steffen Barszus wrote:
On Sun, 06 Mar 2011 17:33:39 +0200 Ville Skyttä ville.skytta@iki.fi wrote:
On 03/06/2011 04:49 PM, Klaus Schmidinger wrote:
I guess what we need first is a specification of the strings LIRC provides. Then we can adapt the VDR code accordingly. I quickly searched the web, but couldn't find that information.
Anybody?
Maybe it has been discussed before, but I wonder why VDR has a LIRC implementation of its own instead of using liblirc_client?
You need a lircrc file for that to use, i think that is just adding another layer. Instead of learning the keys, you would need to create what is in remote.conf in the .lircrc and have fixed keywords in VDR. At least this is my understanding, correct me if i'm wrong.
The format is described there as well.
XBMC seems for instance just to read a line
while (fgets(m_buf, sizeof(m_buf), m_file) != NULL) ... char scanCode[128]; char buttonName[128]; char repeatStr[4]; char deviceName[128]; sscanf(m_buf, "%s %s %s %s", &scanCode[0], &repeatStr[0], &buttonName[0], &deviceName[0]);
https://github.com/xbmc/xbmc/blob/master/xbmc/input/linux/LIRC.cpp
which seems to work well ...
I've changed the code in VDR's lirc.c this way now:
--- lirc.c 2006/05/28 08:48:13 2.0 +++ lirc.c 2011/03/08 15:35:13 @@ -86,7 +86,8 @@ } }
- if (ready && ret > 21) { + if (ready && ret > 0) { + buf[ret - 1] = 0; int count; char KeyName[LIRC_KEY_BUF]; if (sscanf(buf, "%*x %x %29s", &count, KeyName) != 2) { // '29' in '%29s' is LIRC_KEY_BUF-1!
Klaus