summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-André Lureau2020-09-27 16:57:50 +0200
committerGerd Hoffmann2020-09-29 10:08:25 +0200
commit9028ab1f5b2e4803aa984c2da40ab56030d02c0d (patch)
tree6cf8f250667c6b4b84f389e89d23a6774b7d8687
parentspice: remove the single monitor config logic (diff)
downloadqemu-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.h3
-rw-r--r--ui/spice-display.c7
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);