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: Jeff Cody
Subject: Re: [Qemu-devel] [PATCH 3/3] qapi: convert sendkey
Date: Fri, 25 May 2012 10:23:43 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20120424 Thunderbird/12.0

On 05/25/2012 09:00 AM, Luiz Capitulino wrote:
> 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?

Something similar with group snapshots - it had a command that took
an array input.

So I think the schema for what Eric had above would be something like:

{ 'type': 'Sendkey',
  'data': {'key': 'str' } }

{ 'command': 'sendkey',
  'data': { 'keylist': [ 'Sendkey' ], '*hold-time': 'int' } }

(But after typing this I see Anthony has proposed a schema using enums)




reply via email to

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