From: Marc-André Lureau <[email protected]> Use the QOM class vtable only instead.
Signed-off-by: Marc-André Lureau <[email protected]> --- audio/audio_int.h | 10 ---------- audio/audio.c | 29 +++-------------------------- audio/dbusaudio.c | 17 +++++++++-------- 3 files changed, 12 insertions(+), 44 deletions(-) diff --git a/audio/audio_int.h b/audio/audio_int.h index 29f5864be69..0b97c8edee3 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -33,10 +33,6 @@ #include "qemu/audio-capture.h" #include "mixeng.h" -#ifdef CONFIG_GIO -#include <gio/gio.h> -#endif - void G_GNUC_PRINTF(2, 0) AUD_vlog(const char *cap, const char *fmt, va_list ap); @@ -145,12 +141,6 @@ struct audio_driver { const char *name; void *(*init) (Audiodev *, Error **); void (*fini) (void *); -#ifdef CONFIG_GIO - bool (*set_dbus_server)(AudioBackend *be, - GDBusObjectManagerServer *manager, - bool p2p, - Error **errp); -#endif struct audio_pcm_ops *pcm_ops; int max_voices_out; int max_voices_in; diff --git a/audio/audio.c b/audio/audio.c index 323608ea0d5..7e23a63d401 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -1639,31 +1639,11 @@ static const char *audio_mixeng_backend_get_id(AudioBackend *be) return AUDIO_MIXENG_BACKEND(be)->dev->id; } -#ifdef CONFIG_GIO -static bool audio_mixeng_backend_set_dbus_server(AudioBackend *be, - GDBusObjectManagerServer *manager, - bool p2p, - Error **errp) -{ - AudioMixengBackend *d = AUDIO_MIXENG_BACKEND(be); - - if (!d->drv->set_dbus_server) { - return false; - } - - return d->drv->set_dbus_server(be, manager, p2p, errp); -} - -#endif - static void audio_mixeng_backend_class_init(ObjectClass *klass, const void *data) { AudioBackendClass *be = AUDIO_BACKEND_CLASS(klass); be->get_id = audio_mixeng_backend_get_id; -#ifdef CONFIG_GIO - be->set_dbus_server = audio_mixeng_backend_set_dbus_server; -#endif } static void audio_mixeng_backend_init(Object *obj) @@ -2263,12 +2243,9 @@ AudioBackend *audio_be_by_name(const char *name, Error **errp) #ifdef CONFIG_GIO bool audio_be_can_set_dbus_server(AudioBackend *be) { - /* - * TODO: - * AudioBackendClass *klass = AUDIO_BACKEND_GET_CLASS(be); - * return klass->set_dbus_server != NULL; - */ - return AUDIO_MIXENG_BACKEND(be)->drv->set_dbus_server != NULL; + AudioBackendClass *klass = AUDIO_BACKEND_GET_CLASS(be); + + return klass->set_dbus_server != NULL; } bool audio_be_set_dbus_server(AudioBackend *be, diff --git a/audio/dbusaudio.c b/audio/dbusaudio.c index 789d72f6903..9b25269a2d9 100644 --- a/audio/dbusaudio.c +++ b/audio/dbusaudio.c @@ -54,13 +54,6 @@ struct AudioDbus { static struct audio_driver dbus_audio_driver; -static void audio_dbus_class_init(ObjectClass *klass, const void *data) -{ - AudioMixengBackendClass *k = AUDIO_MIXENG_BACKEND_CLASS(klass); - - k->driver = &dbus_audio_driver; -} - typedef struct DBusAudio { Audiodev *dev; GDBusObjectManagerServer *server; @@ -720,7 +713,6 @@ static struct audio_driver dbus_audio_driver = { .name = "dbus", .init = dbus_audio_init, .fini = dbus_audio_fini, - .set_dbus_server = dbus_audio_set_server, .pcm_ops = &dbus_pcm_ops, .max_voices_out = INT_MAX, .max_voices_in = INT_MAX, @@ -728,6 +720,15 @@ static struct audio_driver dbus_audio_driver = { .voice_size_in = sizeof(DBusVoiceIn) }; +static void audio_dbus_class_init(ObjectClass *klass, const void *data) +{ + AudioBackendClass *b = AUDIO_BACKEND_CLASS(klass); + AudioMixengBackendClass *k = AUDIO_MIXENG_BACKEND_CLASS(klass); + + b->set_dbus_server = dbus_audio_set_server; + k->driver = &dbus_audio_driver; +} + static const TypeInfo audio_dbus_info = { .name = TYPE_AUDIO_DBUS, .parent = TYPE_AUDIO_MIXENG_BACKEND, -- 2.52.0
