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.
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
.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);
.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);
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)
.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);
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);
.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);
.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);
.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);
.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);
.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);
.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);
.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");
.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);