"Daniel P. Berrange" <berra...@redhat.com> writes:

> On Fri, May 25, 2012 at 02:20:33PM +0800, Amos Kong 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<ak...@redhat.com>
>> >
>> >>+##
>> >>+# @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?
>
> Using a JSON array for the key names does seem like the most
> natural way to model this. A good rule of thumb is that the
> implementation of a command should not need to further
> parse the individual parameter values. Using a magic string
> encoding instead of the JSON array requires such extra special
> case parsing.

We've followed this rule in QMP so far.

Reply via email to