From 657999b04f57817af7ba99d9492899bb07343670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Tue, 2 Mar 2021 13:46:28 +0000 Subject: [PATCH] conf: add helper to test for sound device codec support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The check for ICH6 || ICH9 is repeated in many places in the code. The new virDomainSoundModelSupportsCodecs() method provides a helper to standardize this check. Reviewed-by: Michal Privoznik Signed-off-by: Daniel P. Berrangé --- src/conf/domain_conf.c | 11 +++++++++-- src/conf/domain_conf.h | 2 ++ src/libvirt_private.syms | 1 + src/qemu/qemu_command.c | 4 +--- src/qemu/qemu_validate.c | 3 +-- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 756459eacb..5831c3b77b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -13774,8 +13774,7 @@ virDomainSoundDefParseXML(virDomainXMLOptionPtr xmlopt, goto error; } - if (def->model == VIR_DOMAIN_SOUND_MODEL_ICH6 || - def->model == VIR_DOMAIN_SOUND_MODEL_ICH9) { + if (virDomainSoundModelSupportsCodecs(def)) { int ncodecs; g_autofree xmlNodePtr *codecNodes = NULL; @@ -30356,6 +30355,14 @@ virDomainDefFindAudioForSound(virDomainDefPtr def, } +bool +virDomainSoundModelSupportsCodecs(virDomainSoundDefPtr def) +{ + return def->model == VIR_DOMAIN_SOUND_MODEL_ICH6 || + def->model == VIR_DOMAIN_SOUND_MODEL_ICH9; +} + + char * virDomainObjGetMetadata(virDomainObjPtr vm, int type, diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 39b678af80..d613d30495 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3786,6 +3786,8 @@ int virDomainDefFindDevice(virDomainDefPtr def, virDomainAudioDefPtr virDomainDefFindAudioForSound(virDomainDefPtr def, virDomainSoundDefPtr sound); +bool +virDomainSoundModelSupportsCodecs(virDomainSoundDefPtr def); const char *virDomainChrSourceDefGetPath(virDomainChrSourceDefPtr chr); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index d6d3f7b677..a1ff1130e2 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -618,6 +618,7 @@ virDomainSmbiosModeTypeToString; virDomainSoundDefFind; virDomainSoundDefFree; virDomainSoundDefRemove; +virDomainSoundModelSupportsCodecs; virDomainSoundModelTypeFromString; virDomainSoundModelTypeToString; virDomainStartupPolicyTypeFromString; diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 4461c2762f..e64d966222 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4101,9 +4101,7 @@ qemuBuildSoundCommandLine(virCommandPtr cmd, return -1; virCommandAddArg(cmd, str); - if (sound->model == VIR_DOMAIN_SOUND_MODEL_ICH6 || - sound->model == VIR_DOMAIN_SOUND_MODEL_ICH9) { - + if (virDomainSoundModelSupportsCodecs(sound)) { for (j = 0; j < sound->ncodecs; j++) { g_autofree char *codecstr = NULL; virCommandAddArg(cmd, "-device"); diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index f97d09ff80..23f5363dd0 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -4219,8 +4219,7 @@ qemuValidateDomainDeviceDefSound(virDomainSoundDefPtr sound, return -1; } - if (sound->model == VIR_DOMAIN_SOUND_MODEL_ICH6 || - sound->model == VIR_DOMAIN_SOUND_MODEL_ICH9) { + if (virDomainSoundModelSupportsCodecs(sound)) { for (i = 0; i < sound->ncodecs; i++) { const char *stype; int type, flags;