From: Glen G. <sl...@sl...> - 2007-03-30 10:45:15
|
Hey Guys, I'm hoping you might be able to help me out. I'm currently working on a linux based set top box at work and I'm using lircd/irxevent to control my applications. I'm having a problem when switching from my menu navigation application to the media player and getting the media player to respond to the irxevents. The media player is a gtk app that wrapps VLC, and VLC displays a full screen XV window for the video. The gtk app has a couple of windows with different controls that are generally hidden and come on screen above the XV window, with their background color set to a chromakey color so the controls appear to "float" over the video. Anyway, the point is, irxevent is set to pass on the ir commands to the CurrentWindow. Works great with the menu application. But, when the media player is launched, the window id that it passes onto is not the media players main control bar, which has grabbed pointer/keyboard focus via the gdk_keyboard_grab, gdk_pointer_grab and gtk_window_set_focus calls. I think that the window id that irxevent is seeing as the CurrentWindow is the XV video window, as xwininfo reports that the window is sized as the same as the screen. And, when vlc is stopped, the window id is gone from the xwininfo -root -all list (also, VLC itself has it's own window with the name set to VLC). What I'm confused over though is that real keyboard events are making it to the correct window. I've a ps/2 keyboard plugged in and the appropriate keys work as expected. If I modify the .lircrc file to duplicate some of the key sections but send them to the window name of the appropriate media player window, as opposed to the CurrentWindow, then the application gets the key events correctly. I can see by the stderr output from irxevent that it's sending 2 keys events in that case, one to current window and one to window name, and both are different window id's. I could make it so that the .lircrc file had a section to send the key events to the both the current window and the media player application. But the media player application is running constantly in the background, so I'd have to modify it to ignore key events unless it's in some sort of playback mode. Which quite frankly seems like a shitty hack, or I could make the menu navigation app pass on ipc messages or something to the media player to control it and have .lircrc send key events directly to it as opposed to CurrentWindow. I'd appreciate any thoughts you might have on this. Ideally, CurrentWindow would just point at the window with keyboard focus, but that doesn't seem to be happening. Kind Regards, -- Glen Gray <sl...@sl...> |
From: <li...@ba...> - 2007-03-30 22:16:03
|
Hi! Glen Gray "sl...@sl..." wrote: [...] > I'd appreciate any thoughts you might have on this. Ideally, > CurrentWindow would just point at the window with keyboard focus, but > that doesn't seem to be happening. irxevent simply calls XGetInputFocus to get the currently focussed window. I don't know which function could be called instead. Christoph |
From: Glen G. <sl...@sl...> - 2007-03-31 19:22:18
|
Hey Christoph, Thanks for replying. Christoph Bartelmus wrote: > irxevent simply calls XGetInputFocus to get the currently focussed > window. I don't know which function could be called instead. > Exactly and this is what has me flummoxed. Keyboard events from the physical keyboard are going to the GTK apps window correctly, it's only the irxevent keystrokes that are going elsewhere. So what's different about the physical key presses focus window and the one that XGetInputFocus is returning. If it is the the XV window from VLC that irxevent is getting as the focus window, then I can only assume that the keyboard event code has some advantage and knows not to use the XV window (perhaps it's going to the first window that has key press mask set). My X knowledge is pretty limited, having mostely developed in higher graphical API's such as GTK+ Cheers, -- Glen Gray <sl...@sl...> |
From: Vassilis V. <va...@ii...> - 2007-03-31 07:19:26
|
Glen Gray wrote: > Hey Guys, > > I'm hoping you might be able to help me out. I'm currently working on a > linux based set top box at work and I'm using lircd/irxevent to control > my applications. > > I'm having a problem when switching from my menu navigation application > to the media player and getting the media player to respond to the > irxevents. The media player is a gtk app that wrapps VLC, and VLC > displays a full screen XV window for the video. > Maybe it is not possible for your setup, but can't you use the vlc lirc client functionality for play/pause/ff/rw?. Here works great. .bill |
From: Glen G. <sl...@sl...> - 2007-03-31 19:24:30
|
Vassilis Virvilis wrote: > Maybe it is not possible for your setup, but can't you use > the vlc lirc client functionality for play/pause/ff/rw?. > Here works great. > Thanks for the suggestion Vassilis, but unfortunately that's not really a viable solution for our current setup. -- Glen Gray <sl...@sl...> |