Il 21/05/2013 10:33, Amos Kong ha scritto:
> On Thu, May 16, 2013 at 05:20:37PM +0200, Paolo Bonzini wrote:
>> Il 16/05/2013 17:17, Peter Maydell ha scritto:
>>> On 16 May 2013 16:09, Paolo Bonzini <pbonz...@redhat.com> wrote:
>>>> ...  In XWindows, you get a KeyRelease for every KeyPress Event. In X,
>>>> it looks something like this:
>>>>
>>>> PRPRPRPRPRPRPRPR
>>>
>>> Shouldn't we be abstracting this platform difference
>>> out in the ui layer, rather than having to deal with it
>>> in the ps2 device model? That is, we should define what
>>> our key-repeat model is for the QEMU keyboard-event-handler
>>> API, and then make sure all our UI frontends (gtk, sdl,
>>> cocoa, etc) do what we require...
>>
>> Yes, I am asking Amos to check which of our frontends comply.
>>
>> It needs to be checked in the host, because Linux guests emulate
>> autorepeat anyway.  Or you can test with FreeDOS.
> 
> Please correct me if something is wrong, thanks.
> 
> When we use VNC/SPICE/SDL, vm Window will captured the key events,
> then qemu process the events and transfer to guest through emulated PS2
> device.
> 
> When we hold the key in keyboard of host, real keyboard or host OS will
> do auto-repeat. vm Window will transfer repeated events to guest.
> In this case, it seems the auto-repeat of emulated PS2 device doesn't
> needed.

If you can make emulated autorepeat work also with VNC/SDL/SPICE, it
would be much better, because then the guest can choose to enable or
disable the autorepeat as desired.

That's why I mentioned testing with FreeDOS, which does no emulation.
You can find DOS programs to change the typematic rate.

Paolo

> But when keyboard/host os doesn't support auto-repeat, or we directly
> send event from monitor by 'sendkey'. held key could not be repeated
> without auto-repeat support of emulated PS2 device.
> 
> 
> When I use (Lenovo t430s & Fedoar 18 host), when I hold the real key,
> qemu will get PPPPPPPR style events queue from host.
> 
> Guest (RHEL6/Win7/WinXp) & (SDL & VNC & SPICE) works well.
> 
> 
> Others:
> 1. I read the keyboard driver in linux kernel, soft_auto-repeat was
>    implemented in linux ps2 driver is PPPPPPPR style.
> 
> 2. PPPPPPPPR style is described in freescale hardware manual:
>    http://www.freescale.com/files/microcontrollers/doc/ref_manual/DRM014.pdf
>    """
>      1.5.9  PS/2 Scan Codes
>      
>      Make code or break code is sent when any key is pressed or released.
>      While a key is pressed, its _make code_ is sent out repeatedly and the
>      rate depends on the typematic repeat value.
>    """
> 
> I will update patches to fix other problem, keep using PPPPPPPR style.
> 


Reply via email to