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>
This commit is contained in:
Marc-André Lureau 2020-09-27 18:57:50 +04:00 committed by Gerd Hoffmann
parent 6244f988bf
commit 9028ab1f5b
2 changed files with 10 additions and 0 deletions

View File

@ -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;

View File

@ -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);