[mythtv-users] LIRC problem in Mythdvd/Mythvideo (lircd sends twice)

Michael T. Dean mtdean at thirdcontact.com
Mon Aug 1 16:11:50 UTC 2005


Mark Schuren wrote:

>so i think i have tried everything, replaced lirc, replaced the player
>application, recompiled mythtv. but problem is still exactly the same.
>so i guess it is a problem of mythfrontend...
>
No.  Works for me.

>or just a faulty configuration
>
Probably.

>because i use the same lirc button for several actions
>in different programs...?
>  
>
But not for that reason--every remote button I use in xine is also 
mapped to an action in Myth, and I don't have any problems.

>again, the apps perfectly work with lirc when run stand-alone.
>
>but when a player like xine or mplayer (i tried both) is started through
>mythvideo, all lirc-buttons which i press (and which are intended to be
>only received by the player - and are actually received by the player
>correctly) are also received by mythfrontend, after the player quits...
>  
>
Yes.  This is the correct behavior for LIRC--except they should be 
received /while/ the player is executing.  Upon receipt of a button 
press, LIRC *always* broadcasts the requested string to *all* registered 
clients.  It's up to the client to know when to handle it and when to 
ignore it.  Programs like xine always handle it.  Programs like 
Myth--ones that start other programs--have to decide whether to ignore it.

>is there any means to let mythfrontend ignore lircd events as
>long as an external player is running?
>
Yeah.  You just need some code like 
http://cvs.mythtv.org/trac/browser/trunk/mythtv/libs/libmyth/util.cpp 
lines 797-799.  Oh, wait.  It's already there.  ;)

>or do i have a "focus" problem?
>  
>
No.  LIRC always broadcasts to all clients, so when using MythTV's 
native LIRC support, focus problems won't make any difference.  If you 
were using irxevent (and not native LIRC support), focus problems would 
result in only one--the wrong--app receiving the button press events.

>also i am still wondering if my lirc config is good:
>  
>
>>>>begin
>>>>    prog = mythtv
>>>>    button = OFF
>>>>    config = Esc
>>>>end
>>>>
>>>>begin
>>>>    prog = xine
>>>>    button = OFF
>>>>    config = Quit
>>>>end
>>>>        
>>>>
>
>the above means that i use the same button on my remote ("OFF") for
>2 different things. it is on the one hand used to quit xine (if running),
>and also used as the escape key for mythtv (if running).
>  
>
That's perfectly fine.  Very close to what I use.

>and this is what happens, if i press the "OFF" button, xine terminates
>as expected, and AFTERWARDS also mythfrontend reacts and leaves the current
>menu (because it also receives the "escape")...
>
That's the part that doesn't make sense...  If it were a problem of Myth 
not ignoring LIRC button press events, it should be happening while 
you're watching the video--not after.

>maybe this is just "working
>as designed" and i have to get a remote with more keys on it?
>  
>
Nope.  Something is wrong with your config--probably buried deep down 
within...

>if i should provide any more info please let me know.
>
>i have no more idea what to try next, please advise! is what i what to do
>impossible? is anyone else using lirc buttons for more than one application
>at once (esp. the mythtv/xine/mplayer combo)?
>  
>
Wild guess...  Do you by any chance have a player command that 
backgrounds xine  (i.e. ends with "&")?  Perhaps the "xine" command 
being executed is a script that sets up the environment and calls the 
xine executable with the specified options and backgrounds the process.

What happens when you play a video through MythVideo using only your 
keyboard?  Do you get similar behavior?  Or, is it impossible to control 
xine using the keyboard when started through Myth without Alt-Tab'ing to 
the xine window first (focus problem)?  If so, it's probably irxevent 
(keep reading...).

You said that irxevent is not running.  How sure are you?  Backup your 
".lircrc"/"lircrc" file and remove all the irxevent configs just to make 
sure (it's possible it's being started by something else).  Because the 
events are occurring after xine exits, it seems this is the most 
plausible reason for this behavior--you have a focus problem that sends 
keys to Myth, but because Myth is blocked waiting for xine to exit, the 
events are populated on the X event queue.  Since the keys are getting 
into the queue after you use the remote, someone started irxevent--which 
is sending keys to Myth.  Then, when xine exits, Myth processes the 
queued X events, giving the behavior you're seeing.

>any help is appreciated!
>  
>
If nothing else, I hope this helps you to narrow your search so you're 
not chasing non-existant bugs...

LIRC is working the way it's supposed to.  It isn't a focus problem 
(unless you've also got irxevent in the mix).  Since Myth isn't 
responding to the commands when the buttons are pressed, it doesn't seem 
to be a problem with Myth failing to set the lirc_lock.  LIRC doesn't 
queue up events, so if there is a queue of events executing, it's 
probably coming from elsewhere.

Good luck,
Mike


More information about the mythtv-users mailing list