qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH qemu+spice] expose server mouse status
@ 2012-03-26 12:47 Alon Levy
  2012-03-26 12:47 ` [Qemu-devel] [PATCH] server: export spice_server_is_server_mouse predicate Alon Levy
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-26 12:47 UTC (permalink / raw)
  To: spice-devel, qemu-devel; +Cc: kraxel

Below are the combined summaries. This lets the current mouse mode the server
is using be shown to qemu users:

(qemu) info spice
Server:
     address: 0.0.0.0:10005
        auth: none
    compiled: 0.10.2
  mouse-mode: server

qemu:

 Alon Levy (1):
   spice_info: add mouse_mode
 
  hmp.c            |    2 ++
  qapi-schema.json |    7 ++++++-
  ui/spice-core.c  |    5 +++++
  3 files changed, 13 insertions(+), 1 deletion(-)

spice:

 Alon Levy (1):
   server: export spice_server_is_server_mouse predicate
 
  server/reds.c            |    6 ++++++
  server/spice-server.syms |    4 ++++
  server/spice.h           |    4 +++-
  3 files changed, 13 insertions(+), 1 deletion(-)

-- 
1.7.9.3

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Qemu-devel] [PATCH] server: export spice_server_is_server_mouse predicate
  2012-03-26 12:47 [Qemu-devel] [PATCH qemu+spice] expose server mouse status Alon Levy
@ 2012-03-26 12:47 ` Alon Levy
  2012-03-26 12:47 ` [Qemu-devel] [PATCH] spice_info: add mouse_mode Alon Levy
  2012-03-26 12:58 ` [Qemu-devel] [Spice-devel] [PATCH qemu+spice] expose server mouse status Arnon Gilboa
  2 siblings, 0 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-26 12:47 UTC (permalink / raw)
  To: spice-devel, qemu-devel; +Cc: kraxel

To be used by qemu query-spice / info spice commands.
---
 server/reds.c            |    6 ++++++
 server/spice-server.syms |    4 ++++
 server/spice.h           |    4 +++-
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/server/reds.c b/server/reds.c
index 27e7ea2..bf26864 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -4006,6 +4006,12 @@ SPICE_GNUC_VISIBLE int spice_server_get_peer_info(SpiceServer *s, struct sockadd
     return 0;
 }
 
+SPICE_GNUC_VISIBLE int spice_server_is_server_mouse(SpiceServer *s)
+{
+    spice_assert(reds == s);
+    return reds->mouse_mode == SPICE_MOUSE_MODE_SERVER;
+}
+
 SPICE_GNUC_VISIBLE int spice_server_add_renderer(SpiceServer *s, const char *name)
 {
     spice_assert(reds == s);
diff --git a/server/spice-server.syms b/server/spice-server.syms
index 4b842a3..99a7271 100644
--- a/server/spice-server.syms
+++ b/server/spice-server.syms
@@ -108,3 +108,7 @@ global:
     spice_server_set_uuid;
     spice_server_set_listen_socket_fd;
 } SPICE_SERVER_0.10.1;
+
+SPICE_SERVER_0.10.3 {
+    spice_server_is_server_mouse;
+} SPICE_SERVER_0.10.2;
diff --git a/server/spice.h b/server/spice.h
index 8dd1c3d..77aec92 100644
--- a/server/spice.h
+++ b/server/spice.h
@@ -22,7 +22,7 @@
 #include <sys/socket.h>
 #include <spice/qxl_dev.h>
 
-#define SPICE_SERVER_VERSION 0x000a02 /* release 0.10.2 */
+#define SPICE_SERVER_VERSION 0x000a03 /* release 0.10.3 */
 
 /* interface base type */
 
@@ -485,6 +485,8 @@ int spice_server_set_agent_copypaste(SpiceServer *s, int enable);
 int spice_server_get_sock_info(SpiceServer *s, struct sockaddr *sa, socklen_t *salen);
 int spice_server_get_peer_info(SpiceServer *s, struct sockaddr *sa, socklen_t *salen);
 
+int spice_server_is_server_mouse(SpiceServer *s);
+
 /* migration interface */
 #define SPICE_INTERFACE_MIGRATION "migration"
 #define SPICE_INTERFACE_MIGRATION_MAJOR 1
-- 
1.7.9.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [Qemu-devel] [PATCH] spice_info: add mouse_mode
  2012-03-26 12:47 [Qemu-devel] [PATCH qemu+spice] expose server mouse status Alon Levy
  2012-03-26 12:47 ` [Qemu-devel] [PATCH] server: export spice_server_is_server_mouse predicate Alon Levy
@ 2012-03-26 12:47 ` Alon Levy
  2012-03-26 13:06   ` Gerd Hoffmann
  2012-03-26 14:15   ` [Qemu-devel] [PATCH v2] " Alon Levy
  2012-03-26 12:58 ` [Qemu-devel] [Spice-devel] [PATCH qemu+spice] expose server mouse status Arnon Gilboa
  2 siblings, 2 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-26 12:47 UTC (permalink / raw)
  To: spice-devel, qemu-devel; +Cc: kraxel

Add mouse_mode, either server or mouse, to qmp and hmp commands, based
on spice_server_is_server_mouse added in spice-server 0.10.3.

Signed-off-by: Alon Levy <alevy@redhat.com>
---
 hmp.c            |    2 ++
 qapi-schema.json |    7 ++++++-
 ui/spice-core.c  |    5 +++++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/hmp.c b/hmp.c
index 9cf2d13..c1224fb 100644
--- a/hmp.c
+++ b/hmp.c
@@ -350,6 +350,8 @@ void hmp_info_spice(Monitor *mon)
     }
     monitor_printf(mon, "        auth: %s\n", info->auth);
     monitor_printf(mon, "    compiled: %s\n", info->compiled_version);
+    monitor_printf(mon, "  mouse-mode: %s\n",
+                   info->has_mouse_mode ? info->mouse_mode : "unknown");
 
     if (!info->has_channels || info->channels == NULL) {
         monitor_printf(mon, "Channels: none\n");
diff --git a/qapi-schema.json b/qapi-schema.json
index 0d11d6e..72c0080 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -654,6 +654,11 @@
 #        'spice' uses SASL or direct TLS authentication, depending on command
 #                line options
 #
+# @mouse-mode: #optional current server mouse mode if spice server is new
+#        enough and exposes this information.
+#        'client' if client side
+#        'server' if server side
+#
 # @channels: a list of @SpiceChannel for each active spice channel
 #
 # Since: 0.14.0
@@ -661,7 +666,7 @@
 { 'type': 'SpiceInfo',
   'data': {'enabled': 'bool', '*host': 'str', '*port': 'int',
            '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
-           '*channels': ['SpiceChannel']} }
+           '*mouse-mode': 'str', '*channels': ['SpiceChannel']} }
 
 ##
 # @query-spice
diff --git a/ui/spice-core.c b/ui/spice-core.c
index a468524..0155dba 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -462,6 +462,11 @@ SpiceInfo *qmp_query_spice(Error **errp)
         info->tls_port = tls_port;
     }
 
+#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */
+    info->has_mouse_mode = true;
+    info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ?
+                                                        "server" : "client");
+#endif
     /* for compatibility with the original command */
     info->has_channels = true;
     info->channels = qmp_query_spice_channels();
-- 
1.7.9.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [Spice-devel] [PATCH qemu+spice] expose server mouse status
  2012-03-26 12:47 [Qemu-devel] [PATCH qemu+spice] expose server mouse status Alon Levy
  2012-03-26 12:47 ` [Qemu-devel] [PATCH] server: export spice_server_is_server_mouse predicate Alon Levy
  2012-03-26 12:47 ` [Qemu-devel] [PATCH] spice_info: add mouse_mode Alon Levy
@ 2012-03-26 12:58 ` Arnon Gilboa
  2 siblings, 0 replies; 17+ messages in thread
From: Arnon Gilboa @ 2012-03-26 12:58 UTC (permalink / raw)
  To: Alon Levy; +Cc: qemu-devel, spice-devel

ACK series
Acked-by: Arnon Gilboa <agilboa@redhat.com>

Alon Levy wrote:
> Below are the combined summaries. This lets the current mouse mode the server
> is using be shown to qemu users:
>
> (qemu) info spice
> Server:
>      address: 0.0.0.0:10005
>         auth: none
>     compiled: 0.10.2
>   mouse-mode: server
>
> qemu:
>
>  Alon Levy (1):
>    spice_info: add mouse_mode
>  
>   hmp.c            |    2 ++
>   qapi-schema.json |    7 ++++++-
>   ui/spice-core.c  |    5 +++++
>   3 files changed, 13 insertions(+), 1 deletion(-)
>
> spice:
>
>  Alon Levy (1):
>    server: export spice_server_is_server_mouse predicate
>  
>   server/reds.c            |    6 ++++++
>   server/spice-server.syms |    4 ++++
>   server/spice.h           |    4 +++-
>   3 files changed, 13 insertions(+), 1 deletion(-)
>
>   

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH] spice_info: add mouse_mode
  2012-03-26 12:47 ` [Qemu-devel] [PATCH] spice_info: add mouse_mode Alon Levy
@ 2012-03-26 13:06   ` Gerd Hoffmann
  2012-03-26 13:30     ` Alon Levy
  2012-03-26 13:36     ` Alon Levy
  2012-03-26 14:15   ` [Qemu-devel] [PATCH v2] " Alon Levy
  1 sibling, 2 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-03-26 13:06 UTC (permalink / raw)
  To: Alon Levy; +Cc: qemu-devel, spice-devel

> +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */
> +    info->has_mouse_mode = true;
> +    info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ?
> +                                                        "server" : "client");

#else
      info->mouse_mode = "unknown";
#endif

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH] spice_info: add mouse_mode
  2012-03-26 13:06   ` Gerd Hoffmann
@ 2012-03-26 13:30     ` Alon Levy
  2012-03-26 13:46       ` Gerd Hoffmann
  2012-03-26 13:36     ` Alon Levy
  1 sibling, 1 reply; 17+ messages in thread
From: Alon Levy @ 2012-03-26 13:30 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel, spice-devel

On Mon, Mar 26, 2012 at 03:06:22PM +0200, Gerd Hoffmann wrote:
> > +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */
> > +    info->has_mouse_mode = true;
> > +    info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ?
> > +                                                        "server" : "client");
> 
> #else
>       info->mouse_mode = "unknown";
> #endif

Why? I don't set has_mouse_mode in this case, which defaults to 0 ==
false because of the malloc0, and then I check has_mouse_mode in the hmp
command, and the qmp just won't send the field because has == false.

> 
> cheers,
>   Gerd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH] spice_info: add mouse_mode
  2012-03-26 13:06   ` Gerd Hoffmann
  2012-03-26 13:30     ` Alon Levy
@ 2012-03-26 13:36     ` Alon Levy
  1 sibling, 0 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-26 13:36 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel, spice-devel

On Mon, Mar 26, 2012 at 03:06:22PM +0200, Gerd Hoffmann wrote:
> > +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */
> > +    info->has_mouse_mode = true;
> > +    info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ?
> > +                                                        "server" : "client");
> 
> #else
>       info->mouse_mode = "unknown";
> #endif
> 

ok, it's probably better to have this consistent across hmp and qmp,
will resend this patch.

> cheers,
>   Gerd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH] spice_info: add mouse_mode
  2012-03-26 13:30     ` Alon Levy
@ 2012-03-26 13:46       ` Gerd Hoffmann
  0 siblings, 0 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-03-26 13:46 UTC (permalink / raw)
  To: spice-devel, qemu-devel

On 03/26/12 15:30, Alon Levy wrote:
> On Mon, Mar 26, 2012 at 03:06:22PM +0200, Gerd Hoffmann wrote:
>>> +#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */
>>> +    info->has_mouse_mode = true;
>>> +    info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ?
>>> +                                                        "server" : "client");
>>
>> #else
>>       info->mouse_mode = "unknown";
>> #endif
> 
> Why?

has_mouse_mode looks superfluous and makes the code a bit more
complicated than needed.

> I don't set has_mouse_mode in this case, which defaults to 0 ==
> false because of the malloc0, and then I check has_mouse_mode in the hmp
> command, and the qmp just won't send the field because has == false.

Ah, ok, didn't see qmp does something different, then I'd suggest to
just leave mouse_mode zero-initialized (aka NULL) when mouse mode info
isn't available.

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Qemu-devel] [PATCH v2] spice_info: add mouse_mode
  2012-03-26 12:47 ` [Qemu-devel] [PATCH] spice_info: add mouse_mode Alon Levy
  2012-03-26 13:06   ` Gerd Hoffmann
@ 2012-03-26 14:15   ` Alon Levy
  2012-03-29  9:08     ` Gerd Hoffmann
                       ` (2 more replies)
  1 sibling, 3 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-26 14:15 UTC (permalink / raw)
  To: qemu-devel, kraxel

Add mouse_mode, either server or mouse, to qmp and hmp commands, based
on spice_server_is_server_mouse added in spice-server 0.10.3.

Signed-off-by: Alon Levy <alevy@redhat.com>
---
v1->v2:
 report mouse mode "unknown" for qmp too (Gerd Hoffman request)

 hmp.c            |    1 +
 qapi-schema.json |    7 ++++++-
 ui/spice-core.c  |    7 +++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/hmp.c b/hmp.c
index 9cf2d13..8837dd0 100644
--- a/hmp.c
+++ b/hmp.c
@@ -350,6 +350,7 @@ void hmp_info_spice(Monitor *mon)
     }
     monitor_printf(mon, "        auth: %s\n", info->auth);
     monitor_printf(mon, "    compiled: %s\n", info->compiled_version);
+    monitor_printf(mon, "  mouse-mode: %s\n", info->mouse_mode);
 
     if (!info->has_channels || info->channels == NULL) {
         monitor_printf(mon, "Channels: none\n");
diff --git a/qapi-schema.json b/qapi-schema.json
index 0d11d6e..72c0080 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -654,6 +654,11 @@
 #        'spice' uses SASL or direct TLS authentication, depending on command
 #                line options
 #
+# @mouse-mode: #optional current server mouse mode if spice server is new
+#        enough and exposes this information.
+#        'client' if client side
+#        'server' if server side
+#
 # @channels: a list of @SpiceChannel for each active spice channel
 #
 # Since: 0.14.0
@@ -661,7 +666,7 @@
 { 'type': 'SpiceInfo',
   'data': {'enabled': 'bool', '*host': 'str', '*port': 'int',
            '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
-           '*channels': ['SpiceChannel']} }
+           '*mouse-mode': 'str', '*channels': ['SpiceChannel']} }
 
 ##
 # @query-spice
diff --git a/ui/spice-core.c b/ui/spice-core.c
index a468524..1579187 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -462,6 +462,13 @@ SpiceInfo *qmp_query_spice(Error **errp)
         info->tls_port = tls_port;
     }
 
+    info->has_mouse_mode = true;
+#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */
+    info->mouse_mode = g_strdup(spice_server_is_server_mouse(spice_server) ?
+                                                        "server" : "client");
+#else
+    info->mouse_mode = g_strdup("unknown");
+#endif
     /* for compatibility with the original command */
     info->has_channels = true;
     info->channels = qmp_query_spice_channels();
-- 
1.7.9.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH v2] spice_info: add mouse_mode
  2012-03-26 14:15   ` [Qemu-devel] [PATCH v2] " Alon Levy
@ 2012-03-29  9:08     ` Gerd Hoffmann
  2012-03-29 20:16       ` Alon Levy
  2012-03-29 20:19     ` Anthony Liguori
  2012-03-29 21:23     ` [Qemu-devel] [PATCH v3] " Alon Levy
  2 siblings, 1 reply; 17+ messages in thread
From: Gerd Hoffmann @ 2012-03-29  9:08 UTC (permalink / raw)
  To: Alon Levy; +Cc: qemu-devel

On 03/26/12 16:15, Alon Levy wrote:
> Add mouse_mode, either server or mouse, to qmp and hmp commands, based
> on spice_server_is_server_mouse added in spice-server 0.10.3.

Looks good.  What is the status of the spice-server patch?  Committed?

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH v2] spice_info: add mouse_mode
  2012-03-29  9:08     ` Gerd Hoffmann
@ 2012-03-29 20:16       ` Alon Levy
  0 siblings, 0 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-29 20:16 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel

On Thu, Mar 29, 2012 at 11:08:20AM +0200, Gerd Hoffmann wrote:
> On 03/26/12 16:15, Alon Levy wrote:
> > Add mouse_mode, either server or mouse, to qmp and hmp commands, based
> > on spice_server_is_server_mouse added in spice-server 0.10.3.
> 
> Looks good.  What is the status of the spice-server patch?  Committed?

Yes.

> 
> cheers,
>   Gerd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH v2] spice_info: add mouse_mode
  2012-03-26 14:15   ` [Qemu-devel] [PATCH v2] " Alon Levy
  2012-03-29  9:08     ` Gerd Hoffmann
@ 2012-03-29 20:19     ` Anthony Liguori
  2012-03-29 20:54       ` Alon Levy
  2012-03-29 21:23     ` [Qemu-devel] [PATCH v3] " Alon Levy
  2 siblings, 1 reply; 17+ messages in thread
From: Anthony Liguori @ 2012-03-29 20:19 UTC (permalink / raw)
  To: Alon Levy; +Cc: qemu-devel, kraxel

On 03/26/2012 09:15 AM, Alon Levy wrote:
> Add mouse_mode, either server or mouse, to qmp and hmp commands, based
> on spice_server_is_server_mouse added in spice-server 0.10.3.
>
> Signed-off-by: Alon Levy<alevy@redhat.com>
> ---
> v1->v2:
>   report mouse mode "unknown" for qmp too (Gerd Hoffman request)
>
>   hmp.c            |    1 +
>   qapi-schema.json |    7 ++++++-
>   ui/spice-core.c  |    7 +++++++
>   3 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/hmp.c b/hmp.c
> index 9cf2d13..8837dd0 100644
> --- a/hmp.c
> +++ b/hmp.c
> @@ -350,6 +350,7 @@ void hmp_info_spice(Monitor *mon)
>       }
>       monitor_printf(mon, "        auth: %s\n", info->auth);
>       monitor_printf(mon, "    compiled: %s\n", info->compiled_version);
> +    monitor_printf(mon, "  mouse-mode: %s\n", info->mouse_mode);
>
>       if (!info->has_channels || info->channels == NULL) {
>           monitor_printf(mon, "Channels: none\n");
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 0d11d6e..72c0080 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -654,6 +654,11 @@
>   #        'spice' uses SASL or direct TLS authentication, depending on command
>   #                line options
>   #
> +# @mouse-mode: #optional current server mouse mode if spice server is new
> +#        enough and exposes this information.
> +#        'client' if client side
> +#        'server' if server side
> +#

Please document which version this is being added in and use an enum instead of 
a string to describe the mode.

If it's trouble a boolean, then use a bool instead of an enum.

Regards,

Anthony Liguori

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH v2] spice_info: add mouse_mode
  2012-03-29 20:19     ` Anthony Liguori
@ 2012-03-29 20:54       ` Alon Levy
  0 siblings, 0 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-29 20:54 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: qemu-devel, kraxel

On Thu, Mar 29, 2012 at 03:19:16PM -0500, Anthony Liguori wrote:
> On 03/26/2012 09:15 AM, Alon Levy wrote:
> >Add mouse_mode, either server or mouse, to qmp and hmp commands, based
> >on spice_server_is_server_mouse added in spice-server 0.10.3.
> >
> >Signed-off-by: Alon Levy<alevy@redhat.com>
> >---
> >v1->v2:
> >  report mouse mode "unknown" for qmp too (Gerd Hoffman request)
> >
> >  hmp.c            |    1 +
> >  qapi-schema.json |    7 ++++++-
> >  ui/spice-core.c  |    7 +++++++
> >  3 files changed, 14 insertions(+), 1 deletion(-)
> >
> >diff --git a/hmp.c b/hmp.c
> >index 9cf2d13..8837dd0 100644
> >--- a/hmp.c
> >+++ b/hmp.c
> >@@ -350,6 +350,7 @@ void hmp_info_spice(Monitor *mon)
> >      }
> >      monitor_printf(mon, "        auth: %s\n", info->auth);
> >      monitor_printf(mon, "    compiled: %s\n", info->compiled_version);
> >+    monitor_printf(mon, "  mouse-mode: %s\n", info->mouse_mode);
> >
> >      if (!info->has_channels || info->channels == NULL) {
> >          monitor_printf(mon, "Channels: none\n");
> >diff --git a/qapi-schema.json b/qapi-schema.json
> >index 0d11d6e..72c0080 100644
> >--- a/qapi-schema.json
> >+++ b/qapi-schema.json
> >@@ -654,6 +654,11 @@
> >  #        'spice' uses SASL or direct TLS authentication, depending on command
> >  #                line options
> >  #
> >+# @mouse-mode: #optional current server mouse mode if spice server is new
> >+#        enough and exposes this information.
> >+#        'client' if client side
> >+#        'server' if server side
> >+#
> 
> Please document which version this is being added in and use an enum
> instead of a string to describe the mode.
> 
> If it's trouble a boolean, then use a bool instead of an enum.

OK. Can't imagine any trouble in using an enum.

> 
> Regards,
> 
> Anthony Liguori

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [Qemu-devel] [PATCH v3] spice_info: add mouse_mode
  2012-03-26 14:15   ` [Qemu-devel] [PATCH v2] " Alon Levy
  2012-03-29  9:08     ` Gerd Hoffmann
  2012-03-29 20:19     ` Anthony Liguori
@ 2012-03-29 21:23     ` Alon Levy
  2012-03-30  8:12       ` Gerd Hoffmann
  2 siblings, 1 reply; 17+ messages in thread
From: Alon Levy @ 2012-03-29 21:23 UTC (permalink / raw)
  To: qemu-devel, kraxel, anthony

Add mouse_mode, either server or mouse, to qmp and hmp commands, based
on spice_server_is_server_mouse added in spice-server 0.10.3.

Signed-off-by: Alon Levy <alevy@redhat.com>
---
 hmp.c            |    2 ++
 qapi-schema.json |   27 ++++++++++++++++++++++++++-
 ui/spice-core.c  |    7 +++++++
 3 files changed, 35 insertions(+), 1 deletion(-)

diff --git a/hmp.c b/hmp.c
index 9cf2d13..71505db 100644
--- a/hmp.c
+++ b/hmp.c
@@ -350,6 +350,8 @@ void hmp_info_spice(Monitor *mon)
     }
     monitor_printf(mon, "        auth: %s\n", info->auth);
     monitor_printf(mon, "    compiled: %s\n", info->compiled_version);
+    monitor_printf(mon, "  mouse-mode: %s\n",
+                   SpiceQueryMouseMode_lookup[info->mouse_mode]);
 
     if (!info->has_channels || info->channels == NULL) {
         monitor_printf(mon, "Channels: none\n");
diff --git a/qapi-schema.json b/qapi-schema.json
index 0d11d6e..d972499 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -634,6 +634,25 @@
            'tls': 'bool'} }
 
 ##
+# @SpiceQueryMouseMode
+#
+# An enumation of Spice mouse states.
+#
+# @client: Mouse cursor position is determined by the client.
+#
+# @server: Mouse cursor position is determined by the server.
+#
+# @unknown: No information is available about mouse mode used by
+#           the spice server.
+#
+# Note: spice/enums.h has a SpiceMouseMode already, hence the name.
+#
+# Since: 1.1
+##
+{ 'enum': 'SpiceQueryMouseMode',
+  'data': [ 'client', 'server', 'unknown' ] }
+
+##
 # @SpiceInfo
 #
 # Information about the SPICE session.
@@ -654,6 +673,12 @@
 #        'spice' uses SASL or direct TLS authentication, depending on command
 #                line options
 #
+# @mouse-mode: The mode in which the mouse cursor is displayed currently. Can
+#              be determined by the client or the server, or unknown if spice
+#              server doesn't provide this information.
+#
+#              Since: 1.1
+#
 # @channels: a list of @SpiceChannel for each active spice channel
 #
 # Since: 0.14.0
@@ -661,7 +686,7 @@
 { 'type': 'SpiceInfo',
   'data': {'enabled': 'bool', '*host': 'str', '*port': 'int',
            '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
-           '*channels': ['SpiceChannel']} }
+           'mouse-mode': 'SpiceQueryMouseMode', '*channels': ['SpiceChannel']} }
 
 ##
 # @query-spice
diff --git a/ui/spice-core.c b/ui/spice-core.c
index a468524..4fc48f8 100644
--- a/ui/spice-core.c
+++ b/ui/spice-core.c
@@ -462,6 +462,13 @@ SpiceInfo *qmp_query_spice(Error **errp)
         info->tls_port = tls_port;
     }
 
+#if SPICE_SERVER_VERSION >= 0x000a03 /* 0.10.3 */
+    info->mouse_mode = spice_server_is_server_mouse(spice_server) ?
+                       SPICE_QUERY_MOUSE_MODE_SERVER :
+                       SPICE_QUERY_MOUSE_MODE_CLIENT;
+#else
+    info->mouse_mode = SPICE_QUERY_MOUSE_MODE_UNKNOWN;
+#endif
     /* for compatibility with the original command */
     info->has_channels = true;
     info->channels = qmp_query_spice_channels();
-- 
1.7.9.3

^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH v3] spice_info: add mouse_mode
  2012-03-29 21:23     ` [Qemu-devel] [PATCH v3] " Alon Levy
@ 2012-03-30  8:12       ` Gerd Hoffmann
  2012-03-30 19:25         ` Alon Levy
  2012-04-01 12:06         ` Alon Levy
  0 siblings, 2 replies; 17+ messages in thread
From: Gerd Hoffmann @ 2012-03-30  8:12 UTC (permalink / raw)
  To: Alon Levy; +Cc: qemu-devel, anthony

  Hi,

> +# @SpiceQueryMouseMode
> +#
> +# An enumation of Spice mouse states.
> +#
> +# @client: Mouse cursor position is determined by the client.
> +#
> +# @server: Mouse cursor position is determined by the server.
> +#
> +# @unknown: No information is available about mouse mode used by
> +#           the spice server.
> +#
> +# Note: spice/enums.h has a SpiceMouseMode already, hence the name.

I guess it makes sense then to just add "unknown" to the existing
SpiceMouseMode and reuse it ...

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH v3] spice_info: add mouse_mode
  2012-03-30  8:12       ` Gerd Hoffmann
@ 2012-03-30 19:25         ` Alon Levy
  2012-04-01 12:06         ` Alon Levy
  1 sibling, 0 replies; 17+ messages in thread
From: Alon Levy @ 2012-03-30 19:25 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel, anthony

On Fri, Mar 30, 2012 at 10:12:56AM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > +# @SpiceQueryMouseMode
> > +#
> > +# An enumation of Spice mouse states.
> > +#
> > +# @client: Mouse cursor position is determined by the client.
> > +#
> > +# @server: Mouse cursor position is determined by the server.
> > +#
> > +# @unknown: No information is available about mouse mode used by
> > +#           the spice server.
> > +#
> > +# Note: spice/enums.h has a SpiceMouseMode already, hence the name.
> 
> I guess it makes sense then to just add "unknown" to the existing
> SpiceMouseMode and reuse it ...

But then you don't get the nifty autogenerated lookup table, although I
agree having two enums is bound to cause confusion somehow. I could just
code a lookup table for the hmp.

> 
> cheers,
>   Gerd
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [Qemu-devel] [PATCH v3] spice_info: add mouse_mode
  2012-03-30  8:12       ` Gerd Hoffmann
  2012-03-30 19:25         ` Alon Levy
@ 2012-04-01 12:06         ` Alon Levy
  1 sibling, 0 replies; 17+ messages in thread
From: Alon Levy @ 2012-04-01 12:06 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel, anthony

On Fri, Mar 30, 2012 at 10:12:56AM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > +# @SpiceQueryMouseMode
> > +#
> > +# An enumation of Spice mouse states.
> > +#
> > +# @client: Mouse cursor position is determined by the client.
> > +#
> > +# @server: Mouse cursor position is determined by the server.
> > +#
> > +# @unknown: No information is available about mouse mode used by
> > +#           the spice server.
> > +#
> > +# Note: spice/enums.h has a SpiceMouseMode already, hence the name.
> 
> I guess it makes sense then to just add "unknown" to the existing
> SpiceMouseMode and reuse it ...

hmm, actually that would require adding #include "spice/enums.h" to
qapi-types.h, not sure that would be accepted happily - making
qapi-types depend on spice.h must be controlled with an ifdef since
spice can be disabled, and that means the schema would be different
depending on the configuration options - I know we specifically don't
change command line options based on configure flags, just the results
of using them.

> 
> cheers,
>   Gerd
> 

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2012-04-01 12:07 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-26 12:47 [Qemu-devel] [PATCH qemu+spice] expose server mouse status Alon Levy
2012-03-26 12:47 ` [Qemu-devel] [PATCH] server: export spice_server_is_server_mouse predicate Alon Levy
2012-03-26 12:47 ` [Qemu-devel] [PATCH] spice_info: add mouse_mode Alon Levy
2012-03-26 13:06   ` Gerd Hoffmann
2012-03-26 13:30     ` Alon Levy
2012-03-26 13:46       ` Gerd Hoffmann
2012-03-26 13:36     ` Alon Levy
2012-03-26 14:15   ` [Qemu-devel] [PATCH v2] " Alon Levy
2012-03-29  9:08     ` Gerd Hoffmann
2012-03-29 20:16       ` Alon Levy
2012-03-29 20:19     ` Anthony Liguori
2012-03-29 20:54       ` Alon Levy
2012-03-29 21:23     ` [Qemu-devel] [PATCH v3] " Alon Levy
2012-03-30  8:12       ` Gerd Hoffmann
2012-03-30 19:25         ` Alon Levy
2012-04-01 12:06         ` Alon Levy
2012-03-26 12:58 ` [Qemu-devel] [Spice-devel] [PATCH qemu+spice] expose server mouse status Arnon Gilboa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).