qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3/3] qapi: convert sendkey


From: Luiz Capitulino
Subject: Re: [Qemu-devel] [PATCH 3/3] qapi: convert sendkey
Date: Fri, 25 May 2012 10:00:54 -0300

On Fri, 25 May 2012 14:20:33 +0800
Amos Kong <address@hidden> wrote:

> On 25/05/12 11:51, Eric Blake wrote:
> > On 05/24/2012 09:32 PM, Amos Kong wrote:
> >> Convert 'sendkey' to use. do_sendkey() depends on some variables
> >> in monitor.c, so reserve qmp_sendkey() to monitor.c
> >> Rename 'string' to 'keys', rename 'hold_time' to 'hold-time'
> >>
> >> Signed-off-by: Amos Kong<address@hidden>
> >
> >> +##
> >> +# @sendkey:
> >> +#
> >> +# Send keys to VM.
> >> +#
> >> +# @keys: key sequence
> >> +# @hold-time: time to delay key up events
> >> +#
> >> +# Returns: Nothing on success
> >> +#          If key is unknown or redundant, QERR_INVALID_PARAMETER
> >> +#          If key is invalid, QERR_INVALID_PARAMETER_VALUE
> >> +#
> >> +# Notes: Send @var{keys} to the emulator. @var{keys} could be the name of 
> >> the
> >> +#        key or the raw value in either decimal or hexadecimal  format. 
> >> Use
> >> +#        @code{-} to press several keys simultaneously.
> >> +#
> >> +# Since: 0.14.0
> >> +##
> >> +{ 'command': 'sendkey', 'data': {'keys': 'str', '*hold-time': 'int'} }
> >
> > Rather than making 'keys' a free-form string where qemu then has to
> > parse '-' to separate keys, should we instead make it a JSON array?  For
> > example,
> 
> 
> Anthony, Luiz, Daniel,  what's your opinion?

I agree it's better.

> > { "execute":"sendkey", "data":{ "keys":["ctrl", "alt", "del"],
> > "hold-time":200 } }
> 
> How to make it compatible with hum command? Still use 'ctrl-alt-delete'
> for hum, separate keys and generate an array in hum_sendkey() before
> calling qmp_sendkey()?

Yes. Basically, you'll move the parsing code to hmp_sendkey() and build
a QList to be passed to qmp_sendkey(). You can take a look at
tests/check-qlist.c for examples on how to work with qlists.

> And I'm know clear about how to define command in qapi-schema.json,
> I didn't find exist example, any clue?
> 
>    { 'command': 'sendkey', 'data': { 'keys': [ 'str'], '*hold-time': 
> 'int'} }
> --
>    { 'type': 'Key', 'data': {'name': 'str'} }
>    { 'command': 'sendkey', 'data': { 'keys': [ 'Key' ], '*hold-time': 
> 'int'} }

Jeff, didn't you implement this?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]