On 06.03.2011 16:56, Steffen Barszus wrote: > On Sun, 06 Mar 2011 17:33:39 +0200 > Ville Skyttä <ville.skytta@xxxxxx> 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? >> >> http://www.lirc.org/html/technical.html#library > > 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 _______________________________________________ vdr mailing list vdr@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr