* [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).