public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Elias Naur <elias@oddlabs.com>
To: Dmitry Torokhov <dtor_core@ameritech.net>
Cc: Arjan van de Ven <arjan@infradead.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Expose input device usages to userspace
Date: Tue, 14 Mar 2006 08:21:32 +0100	[thread overview]
Message-ID: <200603140821.32301.elias@oddlabs.com> (raw)
In-Reply-To: <200603140026.28522.dtor_core@ameritech.net>

On Tuesday 14 March 2006 06:26, Dmitry Torokhov wrote:
> On Monday 13 March 2006 16:02, Arjan van de Ven wrote:
> > On Mon, 2006-03-13 at 21:54 +0100, Elias Naur wrote:
> > > Hi,
> > >
> > > I believe that the current event input interface is missing some kind
> > > of information about the general kind of input device (Mouse, Keyboard,
> > > Joystick etc.) so I added a simple ioctl to do just that. The relevant
> > > line in include/linux/input.h is:
> > >
> > > #define EVIOCGUSAGE(len)    _IOC(_IOC_READ, 'E', 0x1c, len)         /*
> > > get all usages */
> > >
> > > It returns a bit set with the device usages. Current usages are:
> > >
> > > #define USAGE_MOUSE         0x00
> > > #define USAGE_JOYSTICK      0x01
> > > #define USAGE_GAMEPAD       0x02
> > > #define USAGE_KEYBOARD      0x03
> >
> > I'm not sure that this is a good idea in general.
> > However when you do it, at least make it a bitmap; things can be both a
> > mouse and a keyboard for example.
>
> No, I don't think this is needed at all - users should be interested in
> what capabilities a particular device has, not what type it was assigned
> by soneone.

I see your point that an application should not rely too much on device 
usages. However, the main reason I want device usages is to help applications 
and users identify and (visually) represent devices. For example, games could 
show an appropriate icon graphic representing each active device. The event 
interface already has a few other ioctls for this kind of information:

 - The name (EVIOCGNAME).
 - The ID (EVIOCGID). IMHO, device usages are more useful than the "bustype" 
field of struct input_id.
 - The physical location (EVIOCGPHYS).

And speaking of capabilities, the event interface already exposes "types 
assigned by someone" to each device component (ABS_X, KEY_ESC, BTN_TRIGGER 
etc.). If no vendor assigned types should be exposed, only the raw capability 
(a type (abs axis, rel axis, key) and a struct input_absinfo for absolute 
axes) needed to interpret component values would be needed.

 - elias

  reply	other threads:[~2006-03-14  7:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-13 20:54 [PATCH] Expose input device usages to userspace Elias Naur
2006-03-13 21:02 ` Arjan van de Ven
2006-03-14  5:26   ` Dmitry Torokhov
2006-03-14  7:21     ` Elias Naur [this message]
2006-03-14  8:22       ` Arjan van de Ven
2006-03-14 10:46         ` Elias Naur
2006-03-14 10:59           ` Arjan van de Ven
2006-03-14 11:46             ` Elias Naur
2006-03-14  5:33   ` Elias Naur

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200603140821.32301.elias@oddlabs.com \
    --to=elias@oddlabs.com \
    --cc=arjan@infradead.org \
    --cc=dtor_core@ameritech.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox