|
From: Yan S. <ya...@se...> - 2009-01-24 17:35:12
|
Yan Seiner wrote: > If I hit FA, all three sequences are executed, in spite of having flags > = quit set: > > A > 1 > FA > > It's as if lirc starts the FA sequence, then sees 'A' as part of the > sequence, executes that, sees '1' as part of the sequence, executes > that, and then sees 'F1' and completes the FA sequence. I just don't > think that should happen. > > I think it has something to do with the broken way the remote is sending > singals... The remote sends EV_SYN in the middle of the sequence after > A, 1, and F1, and that's what seems to be causing lirc to get confused. > I have to admit I don't quite get how that's happening as hw_devinput.c > should ignore EV_SYN. > > From the evtest output, the event sequence is > > LeftCtrl > LeftAlt > A > EV_SYN > 1 > EV_SYN > F1 > EV_SYN > > and the EV_SYN is causing lirc to interpret the events in mid-stream. > > It seems to be related to this: http://www.nabble.com/Problems-with-dev-input-device-and-NULL-values-td20409095.html I've tried that solution; no joy. I've also tried this as a quick and dirty hack: do { rd = read(hw.fd, &event, sizeof event); if (rd != sizeof event) { logprintf(LOG_ERR, "error reading '%s'", hw.device); if(rd <= 0 && errno != EINTR) raise(SIGTERM); return 0; } } while (event.type == EV_SYN) ; No joy either.... |