diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2018-02-02 12:10:22 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2018-02-20 12:12:05 +0100 |
commit | e3af9f9a4075e81a0854017721de1799795d0a15 (patch) | |
tree | c0a2a25e7c7ca37dd873fa3a3e5e9b22dc56d5d2 | |
parent | 9b9b46c71c4cbec4559ed2edd51d88ac96efa480 (diff) |
vl: drop display_type variable
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 <kraxel@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 20180202111022.19269-13-kraxel@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-rw-r--r-- | qapi/ui.json | 5 | ||||
-rw-r--r-- | vl.c | 54 |
2 files changed, 17 insertions, 42 deletions
diff --git a/qapi/ui.json b/qapi/ui.json index 398baa9698..3e82f25ac5 100644 --- a/qapi/ui.json +++ b/qapi/ui.json @@ -1020,7 +1020,7 @@ # ## { 'enum' : 'DisplayType', - 'data' : [ 'none', 'gtk', 'sdl', + 'data' : [ 'default', 'none', 'gtk', 'sdl', 'egl-headless', 'curses', 'cocoa' ] } ## @@ -1042,7 +1042,8 @@ '*window-close' : 'bool', '*gl' : 'bool' }, 'discriminator' : 'type', - 'data' : { 'none' : 'DisplayNoOpts', + 'data' : { 'default' : 'DisplayNoOpts', + 'none' : 'DisplayNoOpts', 'gtk' : 'DisplayGTK', 'sdl' : 'DisplayNoOpts', 'egl-headless' : 'DisplayNoOpts', @@ -2080,24 +2080,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; @@ -2172,7 +2160,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 error_report("egl support is disabled"); @@ -2180,7 +2167,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"); @@ -2188,7 +2174,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; @@ -2225,14 +2210,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) @@ -3056,7 +3038,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; @@ -3250,18 +3231,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"); @@ -3665,7 +3644,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 @@ -4281,7 +4259,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); } @@ -4327,39 +4305,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.type != DISPLAY_TYPE_SDL) { error_report("-no-frame, -alt-grab and -ctrl-grab are only valid " "for SDL, ignoring option"); } if (dpy.has_window_close && - (display_type != DT_GTK && display_type != DT_SDL)) { + (dpy.type != DISPLAY_TYPE_GTK && dpy.type != DISPLAY_TYPE_SDL)) { error_report("-no-quit is only valid for GTK and SDL, " "ignoring option"); } - if (display_type == DT_GTK) { + if (dpy.type == DISPLAY_TYPE_GTK) { early_gtk_display_init(&dpy); } - if (display_type == DT_SDL) { + if (dpy.type == DISPLAY_TYPE_SDL) { sdl_display_early_init(&dpy); } @@ -4690,17 +4664,17 @@ int main(int argc, char **argv, char **envp) ds = init_displaystate(); /* init local displays */ - switch (display_type) { - case DT_CURSES: + switch (dpy.type) { + case DISPLAY_TYPE_CURSES: curses_display_init(ds, &dpy); break; - case DT_SDL: + case DISPLAY_TYPE_SDL: sdl_display_init(ds, &dpy); break; - case DT_COCOA: + case DISPLAY_TYPE_COCOA: cocoa_display_init(ds, &dpy); break; - case DT_GTK: + case DISPLAY_TYPE_GTK: gtk_display_init(ds, &dpy); break; default: @@ -4721,7 +4695,7 @@ int main(int argc, char **argv, char **envp) } #ifdef CONFIG_OPENGL_DMABUF - if (display_type == DT_EGL) { + if (dpy.type == DISPLAY_TYPE_EGL_HEADLESS) { egl_headless_init(&dpy); } #endif |