This patch series implements support for multitouch input devices in
libvirt, addressing the multitouch feature request in [1].

Currently, libvirt supports various input devices including mouse, tablet,
and keyboard, but lacks support for multitouch devices. This limitation
prevents users from configuring VMs with proper multitouch capabilities,
which is increasingly important for modern applications and touch-enabled
displays.

This series adds comprehensive multitouch support by:

1. Introducing the necessary data structures and enumerations to represent
   multitouch devices in the domain configuration

2. Extending the domain XML schema to allow users to specify multitouch
   input devices in their VM definitions

3. Implementing QEMU driver support to properly map multitouch devices to
   the virtio-input-host-multitouch QEMU device

4. Adding capability detection to identify when QEMU supports multitouch
   devices

5. Updating all relevant enumerations and mappings throughout the codebase
   to handle the new device type

6. Including test coverage to validate the XML parsing and QEMU command
   line generation

After this series, users will be able to configure multitouch input devices
in their domain XML like: <input type='multitouch' bus='virtio'/>.

[1] https://gitlab.com/libvirt/libvirt/-/issues/808

Julio Faracco (8):
  conf: Add multitouch input type enum
  conf: Update the type name mapping in the VIR_ENUM_IMPL macro
  schemas: Update domain schema to support multitouch
  qemu: Add the multitouch case to map to the QEMU virtio device
  qemu: Add device properties for multitouch input
  qemu: Add the multitouch device capability
  Complete remaining enums with multitouch input type
  tests: Add multitouch support to virtio-input tests

 src/conf/domain_audit.c                               | 1 +
 src/conf/domain_conf.c                                | 2 ++
 src/conf/domain_conf.h                                | 1 +
 src/conf/domain_validate.c                            | 1 +
 src/conf/schemas/domaincommon.rng                     | 1 +
 src/qemu/qemu_capabilities.c                          | 3 +++
 src/qemu/qemu_capabilities.h                          | 1 +
 src/qemu/qemu_command.c                               | 8 ++++++++
 src/qemu/qemu_validate.c                              | 5 +++++
 src/security/security_dac.c                           | 2 ++
 src/security/security_selinux.c                       | 2 ++
 tests/qemucapabilitiesdata/caps_10.2.0_x86_64.xml     | 1 +
 tests/qemuxmlconfdata/virtio-input.x86_64-latest.args | 1 +
 tests/qemuxmlconfdata/virtio-input.x86_64-latest.xml  | 3 +++
 tests/qemuxmlconfdata/virtio-input.xml                | 1 +
 15 files changed, 33 insertions(+)

-- 
2.52.0

Reply via email to