[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 19/24] console: add and use qemu_display_find_defaul
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 19/24] console: add and use qemu_display_find_default |
Date: |
Fri, 17 Nov 2017 11:30:41 +0100 |
Using the new registry instead of #ifdefs in vl.c.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
include/ui/console.h | 1 +
ui/console.c | 19 +++++++++++++++++++
vl.c | 15 +++++----------
3 files changed, 25 insertions(+), 10 deletions(-)
diff --git a/include/ui/console.h b/include/ui/console.h
index 6c89599355..7c9e40cc9a 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -442,6 +442,7 @@ struct QemuDisplay {
};
void qemu_display_register(QemuDisplay *ui);
+bool qemu_display_find_default(DisplayOptions *opts);
void qemu_display_early_init(DisplayOptions *opts);
void qemu_display_init(DisplayState *ds, DisplayOptions *opts);
diff --git a/ui/console.c b/ui/console.c
index aa8afbfe26..4c9ac8b21a 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -2176,6 +2176,25 @@ void qemu_display_register(QemuDisplay *ui)
dpys[ui->type] = ui;
}
+bool qemu_display_find_default(DisplayOptions *opts)
+{
+ static DisplayType prio[] = {
+ DISPLAY_TYPE_GTK,
+ DISPLAY_TYPE_SDL,
+ DISPLAY_TYPE_COCOA
+ };
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(prio); i++) {
+ if (dpys[prio[i]] == NULL) {
+ continue;
+ }
+ opts->type = prio[i];
+ return true;
+ }
+ return false;
+}
+
void qemu_display_early_init(DisplayOptions *opts)
{
assert(opts->type < DISPLAY_TYPE__MAX);
diff --git a/vl.c b/vl.c
index df0c10398d..f861562bb2 100644
--- a/vl.c
+++ b/vl.c
@@ -4406,17 +4406,12 @@ int main(int argc, char **argv, char **envp)
}
#endif
if (dpy.type == DISPLAY_TYPE_DEFAULT && !display_remote) {
-#if defined(CONFIG_GTK)
- dpy.type = DISPLAY_TYPE_GTK;
-#elif defined(CONFIG_SDL)
- dpy.type = DISPLAY_TYPE_SDL;
-#elif defined(CONFIG_COCOA)
- dpy.type = DISPLAY_TYPE_COCOA;
-#elif defined(CONFIG_VNC)
- vnc_parse("localhost:0,to=99,id=default", &error_abort);
-#else
- dpy.type = DISPLAY_TYPE_NONE;
+ if (!qemu_display_find_default(&dpy)) {
+ dpy.type = DISPLAY_TYPE_NONE;
+#if defined(CONFIG_VNC)
+ vnc_parse("localhost:0,to=99,id=default", &error_abort);
#endif
+ }
}
if (dpy.type == DISPLAY_TYPE_DEFAULT) {
dpy.type = DISPLAY_TYPE_NONE;
--
2.9.3
- [Qemu-devel] [PATCH 08/24] egl-headless: use DisplayOptions, (continued)
- [Qemu-devel] [PATCH 08/24] egl-headless: use DisplayOptions, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 11/24] vl: drop full_screen variable, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 04/24] vl: rename DisplayType to LegacyDisplayType, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 13/24] vl: drop request_opengl variable, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 02/24] sdl: remove -alt-grab and -ctrl-grab support, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 03/24] sdl: use ctrl-alt-g as grab hotkey, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 09/24] curses: use DisplayOptions, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 21/24] sdl: build as module, Gerd Hoffmann, 2017/11/17
- [Qemu-devel] [PATCH 19/24] console: add and use qemu_display_find_default,
Gerd Hoffmann <=
[Qemu-devel] [PATCH 17/24] curses: hook up to display registry, Gerd Hoffmann, 2017/11/17
[Qemu-devel] [PATCH 18/24] egl-headless: hook up to display registry, Gerd Hoffmann, 2017/11/17
[Qemu-devel] [PATCH 01/24] sdl: remove -no-frame support, Gerd Hoffmann, 2017/11/17