On 08/01/2018 08:43, Thomas Huth wrote:
> On 04.01.2018 18:57, Paolo Bonzini wrote:
>> On 04/01/2018 18:45, Samuel Thibault wrote:
>>> Paolo Bonzini, on jeu. 04 janv. 2018 18:11:00 +0100, wrote:
>>>> On 04/01/2018 16:56, Samuel Thibault wrote:
>>>>>> However, adding magic to "-device usb-braille" that creates both a
>>>>>> front-end and a back-end is completely the opposite of sane...
>>>>> Well, this is also what happens with -device usb-mouse, usb-kbd etc.:
>>>>> they also plug with keyboard & mouse pipes of the qemu graphical
>>>>> frontend. braille is just the same vein for the user.
>>>>
>>>> No, they don't create a new UI object magically that wasn't there
>>>> before.  They just let you add a device, e.g. a USB tablet, that listens
>>>> on an _existing_ UI (GTK+ or SDL or similar).
>>>
>>> Technically for the qemu developper, yes.
>>>
>>> But for the user, no.
>>
>> That's not true.   With or without "-usbdevice tablet", you use the same
>> mouse or keyboard device as the input source.
> 
> But from a users point of view: Why are the mouse and keyboard input
> sources available out of the box, while braille has to be specified
> manually? I think Samuel has a point here...

There are two aspects of this:

1) You have specified the mouse and keyboard backends, actually---via
"-display vnc" or "-display gtk" or "-display none".

2) The model for input backends is one-to-many (all guest
mice/tablets/keyboards share the same backends), while the model for
chardev backends is one-to-one.

> So just another idea: Instead of adding the magic sugar code to the
> usb-braille device, we could also add some code to vl.c or somewhere
> else that checks whether a braille guest device is available and then
> wires it up automatically with a braille host device (unless
> -no-defaults has been specified, or the user already set chardev=...
> there). Would that make more sense in your eyes than to put this code
> into the usb-braille device directly?

I'm not sure how that would work.  Also, if you use "-device" (or
"-netdev", or "-blockdev", or "-chardev", or "-mon", or "-fsdev" or
"-object") you are explicitly saying you don't want any magic.

Magic on the other hand is fully within the scope of legacy options
("-net", "-drive" especially without "if=none", "-usbdevice", "-serial",
"-virtfs", etc.).

Paolo

Reply via email to