From db71589fd9428156a5b366e348d895d445f77449 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 1 Mar 2018 11:05:35 +0100 Subject: console: add qemu display registry, add gtk Add a registry for user interfaces. Add qemu_display_init and qemu_display_early_init helper functions for display initialization. Hook up gtk ui as first user. Signed-off-by: Gerd Hoffmann Message-id: 20180301100547.18962-2-kraxel@redhat.com --- include/ui/console.h | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) (limited to 'include/ui') diff --git a/include/ui/console.h b/include/ui/console.h index f29bacd625..817f9b9bcc 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -432,6 +432,18 @@ void surface_gl_setup_viewport(QemuGLShader *gls, int ww, int wh); #endif +typedef struct QemuDisplay QemuDisplay; + +struct QemuDisplay { + DisplayType type; + void (*early_init)(DisplayOptions *opts); + void (*init)(DisplayState *ds, DisplayOptions *opts); +}; + +void qemu_display_register(QemuDisplay *ui); +void qemu_display_early_init(DisplayOptions *opts); +void qemu_display_init(DisplayState *ds, DisplayOptions *opts); + /* sdl.c */ #ifdef CONFIG_SDL void sdl_display_early_init(DisplayOptions *opts); @@ -487,26 +499,6 @@ static inline void curses_display_init(DisplayState *ds, DisplayOptions *opts) /* input.c */ int index_from_key(const char *key, size_t key_length); -/* gtk.c */ -#ifdef CONFIG_GTK -void early_gtk_display_init(DisplayOptions *opts); -void gtk_display_init(DisplayState *ds, DisplayOptions *opts); -#else -static inline void gtk_display_init(DisplayState *ds, DisplayOptions *opts) -{ - /* This must never be called if CONFIG_GTK is disabled */ - error_report("GTK support is disabled"); - abort(); -} - -static inline void early_gtk_display_init(DisplayOptions *opts) -{ - /* This must never be called if CONFIG_GTK is disabled */ - error_report("GTK support is disabled"); - abort(); -} -#endif - /* egl-headless.c */ void egl_headless_init(DisplayOptions *opts); -- cgit v1.2.1 From 5ee1718f92bd82e0e581191b6326384d291199d3 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 1 Mar 2018 11:05:36 +0100 Subject: sdl: switch over to new display registry Signed-off-by: Gerd Hoffmann Message-id: 20180301100547.18962-3-kraxel@redhat.com --- include/ui/console.h | 19 ------------------- 1 file changed, 19 deletions(-) (limited to 'include/ui') diff --git a/include/ui/console.h b/include/ui/console.h index 817f9b9bcc..cb86e6a0dd 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -444,25 +444,6 @@ void qemu_display_register(QemuDisplay *ui); void qemu_display_early_init(DisplayOptions *opts); void qemu_display_init(DisplayState *ds, DisplayOptions *opts); -/* sdl.c */ -#ifdef CONFIG_SDL -void sdl_display_early_init(DisplayOptions *opts); -void sdl_display_init(DisplayState *ds, DisplayOptions *opts); -#else -static inline void sdl_display_early_init(DisplayOptions *opts) -{ - /* This must never be called if CONFIG_SDL is disabled */ - error_report("SDL support is disabled"); - abort(); -} -static inline void sdl_display_init(DisplayState *ds, DisplayOptions *opts) -{ - /* This must never be called if CONFIG_SDL is disabled */ - error_report("SDL support is disabled"); - abort(); -} -#endif - /* cocoa.m */ #ifdef CONFIG_COCOA void cocoa_display_init(DisplayState *ds, DisplayOptions *opts); -- cgit v1.2.1 From 5013b9e46a72c96999fab1523f722ab58152c59a Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 1 Mar 2018 11:05:37 +0100 Subject: cocoa: switch over to new display registry Signed-off-by: Gerd Hoffmann Message-id: 20180301100547.18962-4-kraxel@redhat.com --- include/ui/console.h | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'include/ui') diff --git a/include/ui/console.h b/include/ui/console.h index cb86e6a0dd..f8c462106a 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -444,18 +444,6 @@ void qemu_display_register(QemuDisplay *ui); void qemu_display_early_init(DisplayOptions *opts); void qemu_display_init(DisplayState *ds, DisplayOptions *opts); -/* cocoa.m */ -#ifdef CONFIG_COCOA -void cocoa_display_init(DisplayState *ds, DisplayOptions *opts); -#else -static inline void cocoa_display_init(DisplayState *ds, DisplayOptions *opts) -{ - /* This must never be called if CONFIG_COCOA is disabled */ - error_report("Cocoa support is disabled"); - abort(); -} -#endif - /* vnc.c */ void vnc_display_init(const char *id); void vnc_display_open(const char *id, Error **errp); -- cgit v1.2.1 From b0766612d16da185a822636cf54214123e8038cf Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 1 Mar 2018 11:05:38 +0100 Subject: curses: switch over to new display registry Signed-off-by: Gerd Hoffmann Message-id: 20180301100547.18962-5-kraxel@redhat.com --- include/ui/console.h | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'include/ui') diff --git a/include/ui/console.h b/include/ui/console.h index f8c462106a..3ea6cf0870 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -453,18 +453,6 @@ int vnc_display_pw_expire(const char *id, time_t expires); QemuOpts *vnc_parse(const char *str, Error **errp); int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp); -/* curses.c */ -#ifdef CONFIG_CURSES -void curses_display_init(DisplayState *ds, DisplayOptions *opts); -#else -static inline void curses_display_init(DisplayState *ds, DisplayOptions *opts) -{ - /* This must never be called if CONFIG_CURSES is disabled */ - error_report("curses support is disabled"); - abort(); -} -#endif - /* input.c */ int index_from_key(const char *key, size_t key_length); -- cgit v1.2.1 From 16ab0a74e44300add9a7966e6f4f95ed4c0e833e Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 1 Mar 2018 11:05:39 +0100 Subject: egl-headless: switch over to new display registry Signed-off-by: Gerd Hoffmann Message-id: 20180301100547.18962-6-kraxel@redhat.com --- include/ui/console.h | 3 --- 1 file changed, 3 deletions(-) (limited to 'include/ui') diff --git a/include/ui/console.h b/include/ui/console.h index 3ea6cf0870..94726cf190 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -456,7 +456,4 @@ int vnc_init_func(void *opaque, QemuOpts *opts, Error **errp); /* input.c */ int index_from_key(const char *key, size_t key_length); -/* egl-headless.c */ -void egl_headless_init(DisplayOptions *opts); - #endif -- cgit v1.2.1 From 898f9d41d02d577ac863069772f0708268d2f926 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 1 Mar 2018 11:05:40 +0100 Subject: console: add and use qemu_display_find_default Using the new display registry instead of #ifdefs in vl.c. Signed-off-by: Gerd Hoffmann Message-id: 20180301100547.18962-7-kraxel@redhat.com --- include/ui/console.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/ui') diff --git a/include/ui/console.h b/include/ui/console.h index 94726cf190..3a53db9360 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -441,6 +441,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); -- cgit v1.2.1