On Mon, Sep 11, 2017 at 05:04:00PM -0700, Jingkui Wang wrote:
> qq inline
> 
> On Tue, Aug 22, 2017 at 3:46 PM, Peter Hutterer <[email protected]>
> wrote:

[...]

> > +  <interface name="zwp_inputfd_device_evdev_v1" version="1">
> > +    <description summary="evdev-compatible inputfd device">
> > +      The wp_inputfd_device_evdev interface represents one device node
> > +      in the Linux kernel evdev interface. The fd passed to the client
> > +      supports the ioctls and read/write commands of that interface. The
> > +      protocol makes no guarantees which ioctls are available on the fd,
> > +      this decision is made by the kernel.
> > +
> > +      A device has a number of static characteristics, e.g. device
> > +      name and pid/vid. These capabilities are sent in an event sequence
> > +      immediately after the wp_inputfd_seat.device_added event. This
> > initial
> > +      event sequence is terminated by a wp_inputfd_device_evdev.done
> > event. This
> > +      sequence is sent only once and always before the first
> > +      wp_inputfd_device.focus_in event.
> > +
> > +      A device is the representation of a logical device as exposed by the
> > +      underlying system and may only represent parts of a single physical
> > +      input device. It is the client's task to identify the device as part
> > +      of a physical device and to group the logical devices together as
> > +      appropriate.
> > +    </description>
> > +
> > +    <request name="destroy" type="destructor">
> > +      <description summary="destroy the inputfd object">
> > +       This destroys the client's resource for this inputfd object.
> > +      </description>
> > +    </request>
> > +
> > +    <event name="name">
> > +      <description summary="device name">
> > +       The name is a UTF-8 encoded string with the device's name, intended
> > +       for presentation to the user.
> > +
> > +       This event is sent in the initial burst of events before the
> > +       wp_inputfd_device_evdev.done event.
> > +
> > +       This event is optional, if the required information is not
> > available
> > +       for this device the event is omitted.
> > +      </description>
> > +      <arg name="name" type="string" summary="the device name"/>
> > +    </event>
> > +
> > +    <event name="usb_id">
> > +      <description summary="device USB vendor/product id">
> > +       This event is sent in the initial burst of events before the
> > +       wp_inputfd_device_evdev.done event.
> > +
> > +       This event is optional, if the required information is not
> > available
> > +       for this device the event is omitted.
> > +      </description>
> > +      <arg name="vid" type="uint" summary="USB vendor id"/>
> > +      <arg name="pid" type="uint" summary="USB product id"/>
> > +    </event>
> > +
> >
> Is there a way to pass through device identification here? Something like
> "ID_INPUT_KEYBOARD"?

I don't think that's going to help much. ID_INPUT_* is too coarse and prone
to being wrong, especially on the devices that we're interested here. if
you're dealing with a device directly I think you should be able to tell
what it is based on the evdev description.

> Does "seat_evdev" indicate client interested in all evdev devices?

yes, you can always destroy/ignore those that you don't care about.
note that the compositor can filter devices, so you may not see all devices
in the inputfd seat.

Cheers,
   Peter
_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to