Use the convenience macro to register types.
Note that jack backend was using the type registration to initialize
some globals. Use a ctor function instead.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
audio/alsaaudio.c | 19 ++++++++-----------
audio/dbusaudio.c | 18 ++++++++----------
audio/dsoundaudio.c | 18 ++++++++----------
audio/jackaudio.c | 18 ++++++++++--------
audio/noaudio.c | 18 ++++++++----------
audio/ossaudio.c | 18 ++++++++----------
audio/paaudio.c | 18 ++++++++----------
audio/pwaudio.c | 20 ++++++++------------
audio/sdlaudio.c | 18 ++++++++----------
audio/sndioaudio.c | 19 ++++++++-----------
audio/spiceaudio.c | 18 ++++++++----------
audio/wavaudio.c | 18 ++++++++----------
audio/coreaudio.m | 18 ++++++++----------
13 files changed, 106 insertions(+), 132 deletions(-)
diff --git a/audio/alsaaudio.c b/audio/alsaaudio.c
index 7200777ad82..ae1cec6a36e 100644
--- a/audio/alsaaudio.c
+++ b/audio/alsaaudio.c
@@ -962,17 +962,14 @@ static struct audio_driver alsa_audio_driver = {
.voice_size_in = sizeof (ALSAVoiceIn)
};
-static const TypeInfo audio_alsa_info = {
- .name = TYPE_AUDIO_ALSA,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioALSA),
- .class_init = audio_alsa_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_ALSA,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioALSA),
+ .class_init = audio_alsa_class_init,
+ },
};
-
-static void register_audio_alsa(void)
-{
- type_register_static(&audio_alsa_info);
-}
-type_init(register_audio_alsa);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_ALSA);
diff --git a/audio/dbusaudio.c b/audio/dbusaudio.c
index 48c9078d80e..269db7877b6 100644
--- a/audio/dbusaudio.c
+++ b/audio/dbusaudio.c
@@ -729,18 +729,16 @@ static void audio_dbus_class_init(ObjectClass *klass, const void *data)
k->driver = &dbus_audio_driver;
}
-static const TypeInfo audio_dbus_info = {
- .name = TYPE_AUDIO_DBUS,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioDbus),
- .class_init = audio_dbus_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_DBUS,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioDbus),
+ .class_init = audio_dbus_class_init,
+ },
};
-static void register_audio_dbus(void)
-{
- type_register_static(&audio_dbus_info);
-}
-type_init(register_audio_dbus);
+DEFINE_TYPES(audio_types)
module_dep("ui-dbus")
module_obj(TYPE_AUDIO_DBUS)
diff --git a/audio/dsoundaudio.c b/audio/dsoundaudio.c
index 6d213899660..462d09e02af 100644
--- a/audio/dsoundaudio.c
+++ b/audio/dsoundaudio.c
@@ -711,16 +711,14 @@ static struct audio_driver dsound_audio_driver = {
.voice_size_in = sizeof (DSoundVoiceIn)
};
-static const TypeInfo audio_dsound_info = {
- .name = TYPE_AUDIO_DSOUND,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioDsound),
- .class_init = audio_dsound_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_DSOUND,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioDsound),
+ .class_init = audio_dsound_class_init,
+ },
};
-static void register_audio_dsound(void)
-{
- type_register_static(&audio_dsound_info);
-}
-type_init(register_audio_dsound);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_DSOUND);
diff --git a/audio/jackaudio.c b/audio/jackaudio.c
index bfce4cb0b4c..972b158f023 100644
--- a/audio/jackaudio.c
+++ b/audio/jackaudio.c
@@ -708,22 +708,24 @@ static void qjack_info(const char *msg)
dolog("I: %s\n", msg);
}
-static const TypeInfo audio_jack_info = {
- .name = TYPE_AUDIO_JACK,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioJack),
- .class_init = audio_jack_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_JACK,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioJack),
+ .class_init = audio_jack_class_init,
+ },
};
-static void register_audio_jack(void)
+static void __attribute__((__constructor__)) audio_jack_init(void)
{
qemu_mutex_init(&qjack_shutdown_lock);
- type_register_static(&audio_jack_info);
#if !defined(WIN32) && defined(CONFIG_PTHREAD_SETNAME_NP_W_TID)
jack_set_thread_creator(qjack_thread_creator);
#endif
jack_set_error_function(qjack_error);
jack_set_info_function(qjack_info);
}
-type_init(register_audio_jack);
+
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_JACK);
diff --git a/audio/noaudio.c b/audio/noaudio.c
index 8b5ebd71bf6..65679b8b13d 100644
--- a/audio/noaudio.c
+++ b/audio/noaudio.c
@@ -155,16 +155,14 @@ static struct audio_driver no_audio_driver = {
.voice_size_in = sizeof (NoVoiceIn)
};
-static const TypeInfo audio_none_info = {
- .name = TYPE_AUDIO_NONE,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioNone),
- .class_init = audio_none_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_NONE,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioNone),
+ .class_init = audio_none_class_init,
+ },
};
-static void register_audio_none(void)
-{
- type_register_static(&audio_none_info);
-}
-type_init(register_audio_none);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_NONE);
diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index b8e26b17ed7..f64c564e345 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -789,16 +789,14 @@ static struct audio_driver oss_audio_driver = {
.voice_size_in = sizeof (OSSVoiceIn)
};
-static const TypeInfo audio_oss_info = {
- .name = TYPE_AUDIO_OSS,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioOss),
- .class_init = audio_oss_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_OSS,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioOss),
+ .class_init = audio_oss_class_init,
+ },
};
-static void register_audio_oss(void)
-{
- type_register_static(&audio_oss_info);
-}
-type_init(register_audio_oss);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_OSS);
diff --git a/audio/paaudio.c b/audio/paaudio.c
index adaeb2af807..331da4f2ed6 100644
--- a/audio/paaudio.c
+++ b/audio/paaudio.c
@@ -948,16 +948,14 @@ static struct audio_driver pa_audio_driver = {
.voice_size_in = sizeof (PAVoiceIn),
};
-static const TypeInfo audio_pa_info = {
- .name = TYPE_AUDIO_PA,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioPa),
- .class_init = audio_pa_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_PA,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioPa),
+ .class_init = audio_pa_class_init,
+ },
};
-static void register_audio_pa(void)
-{
- type_register_static(&audio_pa_info);
-}
-type_init(register_audio_pa);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_PA);
diff --git a/audio/pwaudio.c b/audio/pwaudio.c
index facd166052c..3b524dfea5a 100644
--- a/audio/pwaudio.c
+++ b/audio/pwaudio.c
@@ -864,18 +864,14 @@ static struct audio_driver pw_audio_driver = {
.voice_size_in = sizeof(PWVoiceIn),
};
-static const TypeInfo audio_pw_info = {
- .name = TYPE_AUDIO_PW,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioPw),
- .class_init = audio_pw_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_PW,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioPw),
+ .class_init = audio_pw_class_init,
+ },
};
-static void
-register_audio_pw(void)
-{
- type_register_static(&audio_pw_info);
-}
-
-type_init(register_audio_pw);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_PW);
diff --git a/audio/sdlaudio.c b/audio/sdlaudio.c
index c00f1366d17..a60b1629da0 100644
--- a/audio/sdlaudio.c
+++ b/audio/sdlaudio.c
@@ -508,16 +508,14 @@ static struct audio_driver sdl_audio_driver = {
.voice_size_in = sizeof(SDLVoiceIn),
};
-static const TypeInfo audio_sdl_info = {
- .name = TYPE_AUDIO_SDL,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioSdl),
- .class_init = audio_sdl_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_SDL,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioSdl),
+ .class_init = audio_sdl_class_init,
+ },
};
-static void register_audio_sdl(void)
-{
- type_register_static(&audio_sdl_info);
-}
-type_init(register_audio_sdl);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_SDL);
diff --git a/audio/sndioaudio.c b/audio/sndioaudio.c
index c8310b1fa37..2a9ae42992b 100644
--- a/audio/sndioaudio.c
+++ b/audio/sndioaudio.c
@@ -572,17 +572,14 @@ static struct audio_driver sndio_audio_driver = {
.voice_size_in = sizeof(SndioVoice)
};
-static const TypeInfo audio_sndio_info = {
- .name = TYPE_AUDIO_SNDIO,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioSndio),
- .class_init = audio_sndio_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_SNDIO,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioSndio),
+ .class_init = audio_sndio_class_init,
+ },
};
-static void register_audio_sndio(void)
-{
- type_register_static(&audio_sndio_info);
-}
-
-type_init(register_audio_sndio);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_SNDIO);
diff --git a/audio/spiceaudio.c b/audio/spiceaudio.c
index d1bb318b6b7..ad7cb69673b 100644
--- a/audio/spiceaudio.c
+++ b/audio/spiceaudio.c
@@ -342,18 +342,16 @@ static struct audio_driver spice_audio_driver = {
.voice_size_in = sizeof (SpiceVoiceIn),
};
-static const TypeInfo audio_spice_info = {
- .name = TYPE_AUDIO_SPICE,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioSpice),
- .class_init = audio_spice_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_SPICE,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioSpice),
+ .class_init = audio_spice_class_init,
+ },
};
-static void register_audio_spice(void)
-{
- type_register_static(&audio_spice_info);
-}
-type_init(register_audio_spice);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_SPICE);
module_dep("ui-spice-core");
diff --git a/audio/wavaudio.c b/audio/wavaudio.c
index 12d4108ffad..cd2ceffd42b 100644
--- a/audio/wavaudio.c
+++ b/audio/wavaudio.c
@@ -231,16 +231,14 @@ static struct audio_driver wav_audio_driver = {
.voice_size_in = 0
};
-static const TypeInfo audio_wav_info = {
- .name = TYPE_AUDIO_WAV,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioWav),
- .class_init = audio_wav_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_WAV,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioWav),
+ .class_init = audio_wav_class_init,
+ }
};
-static void register_audio_wav(void)
-{
- type_register_static(&audio_wav_info);
-}
-type_init(register_audio_wav);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_WAV);
diff --git a/audio/coreaudio.m b/audio/coreaudio.m
index 5efd16df7c4..862cb9dd9b0 100644
--- a/audio/coreaudio.m
+++ b/audio/coreaudio.m
@@ -690,16 +690,14 @@ static void coreaudio_audio_fini (void *opaque)
.voice_size_in = 0
};
-static const TypeInfo audio_coreaudio_info = {
- .name = TYPE_AUDIO_COREAUDIO,
- .parent = TYPE_AUDIO_MIXENG_BACKEND,
- .instance_size = sizeof(AudioCoreaudio),
- .class_init = audio_coreaudio_class_init,
+static const TypeInfo audio_types[] = {
+ {
+ .name = TYPE_AUDIO_COREAUDIO,
+ .parent = TYPE_AUDIO_MIXENG_BACKEND,
+ .instance_size = sizeof(AudioCoreaudio),
+ .class_init = audio_coreaudio_class_init,
+ },
};
-static void register_audio_coreaudio(void)
-{
- type_register_static(&audio_coreaudio_info);
-}
-type_init(register_audio_coreaudio);
+DEFINE_TYPES(audio_types)
module_obj(TYPE_AUDIO_COREAUDIO);
--
2.53.0