On 02/10/2005, at Sun 02/10 7:04PM, Itai Tavor wrote:
Hi,
I'm designing a front panel for a MythTV frontend, which will
include buttons for basic actions (up/down, left/right, play,
pause, menu, enter). Instead of using up/down buttons for
navigating in menus and lists, I'd like to use a round knob
connected to an optical encoder. My problem is that I'm going to
need software support...
If I just convert encoder pulses into key presses, turning the knob
fast will cause a lot of presses to be queued which means that
scrolling will continue after the knob is stopped. So I think that
specific support for the encoder would be needed within MythTV.
Since I'm not at all familiar with the MythTV code, I was wondering
if anyone could theorize on whether this would be possible, and
where I should look. What I imagine would be the biggest problem is
the tight integration that would be required between the encoder
event generator and the event receiver - the new code will have to
know when the receiver actually acted on the event so it can avoid
queuing events. If this implies that specific support would be
required in each Myth plugin, quick abandonment of the whole idea
would soon follow.
I'm going to reply to myself with a bit of progress and a new question:
I figured the best way to communicate the encoder events to myth is
via lcdproc, so I'll have a PIC decoding the optical encoder pulses
and creating lcdproc button events. That's easy.
The hard bit is avoiding queued events in mythtv/libs/libmyth/
lcddevice.cpp. I think I'll need to modify LCD::handleKeyPress so it
doesn't do a postEvent if an up/down event is already queued... but
looking through the QT documentation it doesn't seem possible to
check for that. If that's the case, then what I need might require
much bigger changes in event handling code throughout the code...
Any comments/ideas? TIA, Itai
_______________________________________________
mythtv-users mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users