diff options
author | Marc-André Lureau | 2020-09-27 16:57:50 +0200 |
---|---|---|
committer | Gerd Hoffmann | 2020-09-29 10:08:25 +0200 |
commit | 9028ab1f5b2e4803aa984c2da40ab56030d02c0d (patch) | |
tree | 6cf8f250667c6b4b84f389e89d23a6774b7d8687 | |
parent | spice: remove the single monitor config logic (diff) | |
download | qemu-9028ab1f5b2e4803aa984c2da40ab56030d02c0d.tar.gz qemu-9028ab1f5b2e4803aa984c2da40ab56030d02c0d.tar.xz qemu-9028ab1f5b2e4803aa984c2da40ab56030d02c0d.zip |
spice: get monitors physical dimension
With upcoming Spice server version 0.14.4, the monitor configuration can
contain additional fields for the monitor physical dimensions.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 20200927145751.365446-6-marcandre.lureau@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r-- | include/ui/console.h | 3 | ||||
-rw-r--r-- | ui/spice-display.c | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/include/ui/console.h b/include/ui/console.h index 353d2e49a1..e7303d8b98 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -119,6 +119,9 @@ typedef struct DisplaySurface { } DisplaySurface; typedef struct QemuUIInfo { + /* physical dimension */ + uint16_t width_mm; + uint16_t height_mm; /* geometry */ int xoff; int yoff; diff --git a/ui/spice-display.c b/ui/spice-display.c index b304c13149..0178d5766d 100644 --- a/ui/spice-display.c +++ b/ui/spice-display.c @@ -678,6 +678,13 @@ static int interface_client_monitors_config(QXLInstance *sin, if (mc->num_of_monitors > head) { info.width = mc->monitors[head].width; info.height = mc->monitors[head].height; +#if SPICE_SERVER_VERSION >= 0x000e04 /* release 0.14.4 */ + if (mc->flags & VD_AGENT_CONFIG_MONITORS_FLAG_PHYSICAL_SIZE) { + VDAgentMonitorMM *mm = (void *)&mc->monitors[mc->num_of_monitors]; + info.width_mm = mm[head].width; + info.height_mm = mm[head].height; + } +#endif } trace_qemu_spice_ui_info(ssd->qxl.id, info.width, info.height); |