@samitouri / QOSamiQemu / commits / b95d55f77e

audio: remove set_dbus_server from audio_driver

Use the QOM class vtable only instead. Reviewed-by: Mark Cave-Ayland <mark.caveayland@nutanix.com> Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Marc-André Lureau committed Jan 16, 2026 at 00:42 UTC b95d55f77efb221d256c7326d644996027c6c8da
3 files changed +12 -44
audio/audio.c
+3 -26
@@ -1640,31 +1640,11 @@ static const char *audio_mixeng_backend_get_id(AudioBackend *be)
1640 return AUDIO_MIXENG_BACKEND(be)->dev->id;
1641 }
1642
1643 -#ifdef CONFIG_GIO
1644 -static bool audio_mixeng_backend_set_dbus_server(AudioBackend *be,
1645 - GDBusObjectManagerServer *manager,
1646 - bool p2p,
1647 - Error **errp)
1648 -{
1649 - AudioMixengBackend *d = AUDIO_MIXENG_BACKEND(be);
1650 -
1651 - if (!d->drv->set_dbus_server) {
1652 - return false;
1653 - }
1654 -
1655 - return d->drv->set_dbus_server(be, manager, p2p, errp);
1656 -}
1657 -
1658 -#endif
1659 -
1643 static void audio_mixeng_backend_class_init(ObjectClass *klass, const void *data)
1644 {
1645 AudioBackendClass *be = AUDIO_BACKEND_CLASS(klass);
1646
1647 be->get_id = audio_mixeng_backend_get_id;
1665 -#ifdef CONFIG_GIO
1666 - be->set_dbus_server = audio_mixeng_backend_set_dbus_server;
1667 -#endif
1648 }
1649
1650 static void audio_mixeng_backend_init(Object *obj)
@@ -2264,12 +2244,9 @@ AudioBackend *audio_be_by_name(const char *name, Error **errp)
2244 #ifdef CONFIG_GIO
2245 bool audio_be_can_set_dbus_server(AudioBackend *be)
2246 {
2267 - /*
2268 - * TODO:
2269 - * AudioBackendClass *klass = AUDIO_BACKEND_GET_CLASS(be);
2270 - * return klass->set_dbus_server != NULL;
2271 - */
2272 - return AUDIO_MIXENG_BACKEND(be)->drv->set_dbus_server != NULL;
2247 + AudioBackendClass *klass = AUDIO_BACKEND_GET_CLASS(be);
2248 +
2249 + return klass->set_dbus_server != NULL;
2250 }
2251
2252 bool audio_be_set_dbus_server(AudioBackend *be,
audio/audio_int.h
-10
@@ -33,10 +33,6 @@
33 #include "qemu/audio-capture.h"
34 #include "mixeng.h"
35
36 -#ifdef CONFIG_GIO
37 -#include <gio/gio.h>
38 -#endif
39 -
36 void G_GNUC_PRINTF(2, 0)
37 AUD_vlog(const char *cap, const char *fmt, va_list ap);
38
@@ -145,12 +141,6 @@ struct audio_driver {
141 const char *name;
142 void *(*init) (Audiodev *, Error **);
143 void (*fini) (void *);
148 -#ifdef CONFIG_GIO
149 - bool (*set_dbus_server)(AudioBackend *be,
150 - GDBusObjectManagerServer *manager,
151 - bool p2p,
152 - Error **errp);
153 -#endif
144 struct audio_pcm_ops *pcm_ops;
145 int max_voices_out;
146 int max_voices_in;
audio/dbusaudio.c
+9 -8
@@ -54,13 +54,6 @@ struct AudioDbus {
54
55 static struct audio_driver dbus_audio_driver;
56
57 -static void audio_dbus_class_init(ObjectClass *klass, const void *data)
58 -{
59 - AudioMixengBackendClass *k = AUDIO_MIXENG_BACKEND_CLASS(klass);
60 -
61 - k->driver = &dbus_audio_driver;
62 -}
63 -
57 typedef struct DBusAudio {
58 Audiodev *dev;
59 GDBusObjectManagerServer *server;
@@ -720,7 +713,6 @@ static struct audio_driver dbus_audio_driver = {
713 .name = "dbus",
714 .init = dbus_audio_init,
715 .fini = dbus_audio_fini,
723 - .set_dbus_server = dbus_audio_set_server,
716 .pcm_ops = &dbus_pcm_ops,
717 .max_voices_out = INT_MAX,
718 .max_voices_in = INT_MAX,
@@ -728,6 +720,15 @@ static struct audio_driver dbus_audio_driver = {
720 .voice_size_in = sizeof(DBusVoiceIn)
721 };
722
723 +static void audio_dbus_class_init(ObjectClass *klass, const void *data)
724 +{
725 + AudioBackendClass *b = AUDIO_BACKEND_CLASS(klass);
726 + AudioMixengBackendClass *k = AUDIO_MIXENG_BACKEND_CLASS(klass);
727 +
728 + b->set_dbus_server = dbus_audio_set_server;
729 + k->driver = &dbus_audio_driver;
730 +}
731 +
732 static const TypeInfo audio_dbus_info = {
733 .name = TYPE_AUDIO_DBUS,
734 .parent = TYPE_AUDIO_MIXENG_BACKEND,