diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e12512a78c..bbdaf7391d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -130,19 +130,39 @@ VIR_ENUM_IMPL(qemuNumaPolicy, "restrictive", ); -VIR_ENUM_DECL(qemuAudioDriver); -VIR_ENUM_IMPL(qemuAudioDriver, - VIR_DOMAIN_AUDIO_TYPE_LAST, - "none", - "alsa", - "coreaudio", - "jack", - "oss", - "pa", - "sdl", - "spice", - "wav", -); + +const char * +qemuAudioDriverTypeToString(virDomainAudioType type) +{ + switch (type) { + case VIR_DOMAIN_AUDIO_TYPE_PULSEAUDIO: + return "pa"; + case VIR_DOMAIN_AUDIO_TYPE_FILE: + return "wav"; + case VIR_DOMAIN_AUDIO_TYPE_NONE: + case VIR_DOMAIN_AUDIO_TYPE_ALSA: + case VIR_DOMAIN_AUDIO_TYPE_COREAUDIO: + case VIR_DOMAIN_AUDIO_TYPE_JACK: + case VIR_DOMAIN_AUDIO_TYPE_OSS: + case VIR_DOMAIN_AUDIO_TYPE_SDL: + case VIR_DOMAIN_AUDIO_TYPE_SPICE: + case VIR_DOMAIN_AUDIO_TYPE_LAST: + break; + } + return virDomainAudioTypeTypeToString(type); +} + + +virDomainAudioType +qemuAudioDriverTypeFromString(const char *str) +{ + if (STREQ(str, "pa")) { + return VIR_DOMAIN_AUDIO_TYPE_PULSEAUDIO; + } else if (STREQ(str, "wav")) { + return VIR_DOMAIN_AUDIO_TYPE_FILE; + } + return virDomainAudioTypeTypeFromString(str); +} static const char * diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h index ba175aff9c..b7fcf15a1e 100644 --- a/src/qemu/qemu_command.h +++ b/src/qemu/qemu_command.h @@ -256,3 +256,6 @@ qemuBuildTPMOpenBackendFDs(const char *tpmdev, int *cancelfd) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4) G_GNUC_NO_INLINE; + +const char * qemuAudioDriverTypeToString(virDomainAudioType type); +virDomainAudioType qemuAudioDriverTypeFromString(const char *str); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index d11e781320..5537bce122 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -3482,20 +3482,10 @@ qemuDomainDefSuggestDefaultAudioBackend(virQEMUDriver *driver, if (audioenv == NULL) { *addAudio = false; } else { - /* - * QEMU audio driver names are mostly the same as - * libvirt XML audio backend names - */ - if (STREQ(audioenv, "pa")) { - *audioBackend = VIR_DOMAIN_AUDIO_TYPE_PULSEAUDIO; - } else if (STREQ(audioenv, "wav")) { - *audioBackend = VIR_DOMAIN_AUDIO_TYPE_FILE; - } else { - if (((*audioBackend) = virDomainAudioTypeTypeFromString(audioenv)) < 0) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("unknown QEMU_AUDIO_DRV setting %s"), audioenv); - return -1; - } + if (((*audioBackend) = qemuAudioDriverTypeFromString(audioenv)) < 0) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("unknown QEMU_AUDIO_DRV setting %s"), audioenv); + return -1; } } }