Switch over all leftover users to qapi DisplayType.
Then delete the unused display_type variable.
Add 'default' DisplayType, which isn't an actual display type but
a placeholder for "user didn't specify a display". It will be replaced
by the DisplayType actually used, which in turn depends on the
DisplayTypes availabel in the particular build.
Signed-off-by: Gerd Hoffmann
---
vl.c | 54 ++
qapi/ui.json | 5 +++--
2 files changed, 17 insertions(+), 42 deletions(-)
diff --git a/vl.c b/vl.c
index 4ef774e783..42867d60f8 100644
--- a/vl.c
+++ b/vl.c
@@ -2079,24 +2079,12 @@ static void select_vgahw(const char *p)
}
}
-typedef enum LegacyDisplayType {
-DT_DEFAULT,
-DT_CURSES,
-DT_SDL,
-DT_COCOA,
-DT_GTK,
-DT_EGL,
-DT_NONE,
-} LegacyDisplayType;
-
-static LegacyDisplayType select_display(const char *p)
+static void parse_display(const char *p)
{
const char *opts;
-LegacyDisplayType display = DT_DEFAULT;
if (strstart(p, "sdl", &opts)) {
#ifdef CONFIG_SDL
-display = DT_SDL;
dpy.type = DISPLAY_TYPE_SDL;
while (*opts) {
const char *nextopt;
@@ -2175,7 +2163,6 @@ static LegacyDisplayType select_display(const char *p)
} else if (strstart(p, "egl-headless", &opts)) {
#ifdef CONFIG_OPENGL_DMABUF
display_opengl = 1;
-display = DT_EGL;
dpy.type = DISPLAY_TYPE_EGL_HEADLESS;
#else
fprintf(stderr, "egl support is disabled\n");
@@ -2183,7 +2170,6 @@ static LegacyDisplayType select_display(const char *p)
#endif
} else if (strstart(p, "curses", &opts)) {
#ifdef CONFIG_CURSES
-display = DT_CURSES;
dpy.type = DISPLAY_TYPE_CURSES;
#else
error_report("curses support is disabled");
@@ -2191,7 +2177,6 @@ static LegacyDisplayType select_display(const char *p)
#endif
} else if (strstart(p, "gtk", &opts)) {
#ifdef CONFIG_GTK
-display = DT_GTK;
dpy.type = DISPLAY_TYPE_GTK;
while (*opts) {
const char *nextopt;
@@ -2228,14 +2213,11 @@ static LegacyDisplayType select_display(const char *p)
exit(1);
#endif
} else if (strstart(p, "none", &opts)) {
-display = DT_NONE;
dpy.type = DISPLAY_TYPE_NONE;
} else {
error_report("unknown display type");
exit(1);
}
-
-return display;
}
static int balloon_parse(const char *arg)
@@ -3063,7 +3045,6 @@ int main(int argc, char **argv, char **envp)
const char *incoming = NULL;
bool userconfig = true;
bool nographic = false;
-LegacyDisplayType display_type = DT_DEFAULT;
int display_remote = 0;
const char *log_mask = NULL;
const char *log_file = NULL;
@@ -3257,18 +3238,16 @@ int main(int argc, char **argv, char **envp)
}
break;
case QEMU_OPTION_display:
-display_type = select_display(optarg);
+parse_display(optarg);
break;
case QEMU_OPTION_nographic:
olist = qemu_find_opts("machine");
qemu_opts_parse_noisily(olist, "graphics=off", false);
nographic = true;
-display_type = DT_NONE;
dpy.type = DISPLAY_TYPE_NONE;
break;
case QEMU_OPTION_curses:
#ifdef CONFIG_CURSES
-display_type = DT_CURSES;
dpy.type = DISPLAY_TYPE_CURSES;
#else
error_report("curses support is disabled");
@@ -3676,7 +3655,6 @@ int main(int argc, char **argv, char **envp)
break;
case QEMU_OPTION_sdl:
#ifdef CONFIG_SDL
-display_type = DT_SDL;
dpy.type = DISPLAY_TYPE_SDL;
break;
#else
@@ -4292,7 +4270,7 @@ int main(int argc, char **argv, char **envp)
exit(1);
}
#ifdef CONFIG_CURSES
-if (display_type == DT_CURSES) {
+if (dpy.type == DISPLAY_TYPE_CURSES) {
error_report("curses display cannot be used with -daemonize");
exit(1);
}
@@ -4338,39 +4316,35 @@ int main(int argc, char **argv, char **envp)
display_remote++;
}
#endif
-if (display_type == DT_DEFAULT && !display_remote) {
+if (dpy.type == DISPLAY_TYPE_DEFAULT && !display_remote) {
#if defined(CONFIG_GTK)
-display_type = DT_GTK;
dpy.type = DISPLAY_TYPE_GTK;
#elif defined(CONFIG_SDL)
-display_type = DT_SDL;
dpy.type = DISPLAY_TYPE_SDL;
#elif defined(CONFIG_COCOA)
-display_type = DT_COCOA;
dpy.type = DISPLAY_TYPE_COCOA;
#elif defined(CONFIG_VNC)
vnc_parse("localhost:0,to=99,id=default", &error_abort);
#else
-display_type = DT_NONE;
dpy.type = DISPLAY_TYPE_NONE;
#endif
}
-if ((no_frame || alt_grab || ctrl_grab) && display_type != DT_SDL) {
+if ((no_frame || alt_grab || ctrl_grab) && dpy.