general remote control mechanism (was: Re: [linux-dvb] Hauppauge Nova-T PCI on Fedora Core 3)

Oliver Endriss o.endriss at gmx.de
Tue Mar 8 00:42:50 CET 2005


Patrick Boettcher wrote:
> On Mon, 7 Mar 2005, Oliver Endriss wrote:
> 
> > In kernel 2.6 there are 2 ioctls to manipulate keymaps
> > - EVIOCGKEYCODE
> > - EVIOCSKEYCODE
> > Fine, they could be used to implement generic keymaps. But...
> 
> I think this is what Gerd is using in his 
> http://dl.bytesex.org/cvs-snapshots/input-<version>.tar.gz 
> keymap-upload-tool. (He just pointed that out in another mail)

Yes, exactly.

Unfortunately, there is no user-friendly way to *create* a keymap.
Remote controls are not keyboards, there is no standardization.
An user must be able to create a keymap without reading log files.

> > Most applications do some key mapping on their own.
> > Why don't we simply fill all holes in the keymaps of the drivers with
> > some unique codes? This would avoid dead keys which are the main problem
> > right know.
> 
> The holes are huge, because e.g. dibusb-devices (and as far as I can see 
> the cinergyt2 as well) are able to deliver the code of all 
> NEC-protocol-compatible remote controls (is this the RC5?), not just the 
> ones which are boxed.

Well, I have no problem if the keymap support would be improved.
Anyway, most problems could be avoided if we would simply fill the gaps
in the keymap (if the keymap is small enough, of course).

Example:
RC5 uses 5 bits for the device address and 6 bits for data.

The budget-ci driver has a fixed keymap of size 64 (2^6).
The gaps will cause dead keys if you use a generic RC5 remote control
or the vendor delivers a new type of remote control.
It's very easy to fill these gaps, and it would not break anything.

The input driver supports keymaps with 8/16/32 bit scan codes.
Unfortunately, these key maps must be contiguous.
Not a problem for 8 bit keymaps, but memory is wasted if 16/32 bit scan
codes are being used...

I'd really like to improve keymap support but imho the input driver does
not provide a good infrastructure to do this:
- no way to read raw scan codes
- no way to pass setup information to the driver
- no support for sparse keymaps

Oliver

-- 
--------------------------------------------------------
VDR Remote Plugin available at
http://www.escape-edv.de/endriss/vdr/
--------------------------------------------------------




More information about the linux-dvb mailing list