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 | 6 ------ audio/audio.c | 28 +++------------------------- audio/dbusaudio.c | 34 ++++++++++++++++++---------------- 3 files changed, 21 insertions(+), 47 deletions(-) diff --git a/audio/audio_int.h b/audio/audio_int.h index 44e63318e8..e289ef5f66 100644 --- a/audio/audio_int.h +++ b/audio/audio_int.h @@ -147,12 +147,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 fab6024207..1693563c62 100644 --- a/audio/audio.c +++ b/audio/audio.c @@ -1641,31 +1641,11 @@ static const char *audio_driver_get_id(AudioBackend *be) return AUDIO_DRIVER(be)->dev->id; } -#ifdef CONFIG_GIO -static bool audio_driver_set_dbus_server(AudioBackend *be, - GDBusObjectManagerServer *manager, - bool p2p, - Error **errp) -{ - AudioDriver *d = AUDIO_DRIVER(be); - - if (!d->drv->set_dbus_server) { - return false; - } - - return d->drv->set_dbus_server(be, manager, p2p, errp); -} - -#endif - static void audio_driver_class_init(ObjectClass *klass, const void *data) { AudioBackendClass *be = AUDIO_BACKEND_CLASS(klass); be->get_id = audio_driver_get_id; -#ifdef CONFIG_GIO - be->set_dbus_server = audio_driver_set_dbus_server; -#endif } static void audio_driver_init(Object *obj) @@ -2264,11 +2244,9 @@ AudioBackend *audio_be_by_name(const char *name, Error **errp) #ifdef CONFIG_GIO bool audio_be_can_set_dbus_server(AudioBackend *be) { - /* - * AudioBackendClass *klass = AUDIO_BACKEND_GET_CLASS(be); - * return klass->set_dbus_server != NULL; - */ - return AUDIO_DRIVER(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 f0b17be6e8..edd551a80f 100644 --- a/audio/dbusaudio.c +++ b/audio/dbusaudio.c @@ -54,21 +54,6 @@ struct AudioDbus { static struct audio_driver dbus_audio_driver; -static void audio_dbus_class_init(ObjectClass *klass, const void *data) -{ - AudioDriverClass *k = AUDIO_DRIVER_CLASS(klass); - - k->driver = &dbus_audio_driver; -} - -static void audio_dbus_init(Object *obj) -{ -} - -static void audio_dbus_finalize(Object *obj) -{ -} - typedef struct DBusAudio { Audiodev *dev; GDBusObjectManagerServer *server; @@ -728,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, @@ -736,6 +720,24 @@ 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); + AudioDriverClass *k = AUDIO_DRIVER_CLASS(klass); + + b->set_dbus_server = dbus_audio_set_server; + k->driver = &dbus_audio_driver; +} + +static void audio_dbus_init(Object *obj) +{ +} + +static void audio_dbus_finalize(Object *obj) +{ +} + + static const TypeInfo audio_dbus_info = { .name = TYPE_AUDIO_DBUS, .parent = TYPE_AUDIO_DRIVER, -- 2.51.1
