mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
Support ac97 soundcard model
This commit is contained in:
parent
554d82a200
commit
a964a6dad6
@ -1,3 +1,12 @@
|
||||
Tue Jan 20 22:12:53 GMT 2009 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/domain_conf.c, src/domain_conf.h: Support ac97 soundcard
|
||||
model
|
||||
* src/xend_internal.c: Remove unused APis and restrict the
|
||||
'all' device conversion to just sb16 + es1370
|
||||
* tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml: Revert earlier
|
||||
mistaken change which added pcspk device
|
||||
|
||||
Tue Jan 20 22:06:53 GMT 2009 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* python/libvir.c, python/libvir.py: Use global thread
|
||||
|
@ -121,7 +121,8 @@ VIR_ENUM_IMPL(virDomainChr, VIR_DOMAIN_CHR_TYPE_LAST,
|
||||
VIR_ENUM_IMPL(virDomainSoundModel, VIR_DOMAIN_SOUND_MODEL_LAST,
|
||||
"sb16",
|
||||
"es1370",
|
||||
"pcspk")
|
||||
"pcspk",
|
||||
"ac97")
|
||||
|
||||
VIR_ENUM_IMPL(virDomainInput, VIR_DOMAIN_INPUT_TYPE_LAST,
|
||||
"mouse",
|
||||
|
@ -236,6 +236,7 @@ enum virDomainSoundModel {
|
||||
VIR_DOMAIN_SOUND_MODEL_SB16,
|
||||
VIR_DOMAIN_SOUND_MODEL_ES1370,
|
||||
VIR_DOMAIN_SOUND_MODEL_PCSPK,
|
||||
VIR_DOMAIN_SOUND_MODEL_ES97,
|
||||
|
||||
VIR_DOMAIN_SOUND_MODEL_LAST
|
||||
};
|
||||
|
@ -746,52 +746,6 @@ urlencode(const char *string)
|
||||
}
|
||||
#endif /* ! PROXY */
|
||||
|
||||
/* Applicable sound models */
|
||||
static const char *const sound_models[] = { "sb16", "es1370" };
|
||||
|
||||
/**
|
||||
* is_sound_model_valid:
|
||||
* @model : model string to check against whitelist
|
||||
*
|
||||
* checks passed model string against whitelist of acceptable models
|
||||
*
|
||||
* Returns 0 if invalid, 1 otherwise
|
||||
*/
|
||||
int is_sound_model_valid(const char *model) {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sizeof(sound_models)/sizeof(*sound_models); ++i) {
|
||||
if (STREQ(model, sound_models[i])) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* is_sound_model_conflict:
|
||||
* @model : model string to look for duplicates of
|
||||
* @soundstr : soundhw string for the form m1,m2,m3 ...
|
||||
*
|
||||
* Returns 0 if no conflict, 1 otherwise
|
||||
*/
|
||||
int is_sound_model_conflict(const char *model, const char *soundstr) {
|
||||
|
||||
char *dupe;
|
||||
char *cur = (char *) soundstr;
|
||||
while ((dupe = strstr(cur, model))) {
|
||||
if (( (dupe == cur) || // (Start of line |
|
||||
(*(dupe - 1) == ',') ) && // Preceded by comma) &
|
||||
( (dupe[strlen(model)] == ',') || // (Ends with comma |
|
||||
(dupe[strlen(model)] == '\0') )) // Ends whole string)
|
||||
return 1;
|
||||
else
|
||||
cur = dupe + strlen(model);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* PUBLIC FUNCTIONS */
|
||||
|
||||
/**
|
||||
@ -1866,11 +1820,25 @@ xenDaemonParseSxprSound(virConnectPtr conn,
|
||||
if (STREQ(str, "all")) {
|
||||
int i;
|
||||
|
||||
/*
|
||||
* Special compatability code for Xen with a bogus
|
||||
* sound=all in config.
|
||||
*
|
||||
* NB delibrately, don't include all possible
|
||||
* sound models anymore, just the 2 that were
|
||||
* historically present in Xen's QEMU.
|
||||
*
|
||||
* ie just es1370 + sb16.
|
||||
*
|
||||
* Hence use of MODEL_ES1370 + 1, instead of MODEL_LAST
|
||||
*/
|
||||
|
||||
if (VIR_ALLOC_N(def->sounds,
|
||||
VIR_DOMAIN_SOUND_MODEL_LAST) < 0)
|
||||
VIR_DOMAIN_SOUND_MODEL_ES1370 + 1) < 0)
|
||||
goto no_memory;
|
||||
|
||||
for (i = 0 ; i < VIR_DOMAIN_SOUND_MODEL_LAST ; i++) {
|
||||
|
||||
for (i = 0 ; i < (VIR_DOMAIN_SOUND_MODEL_ES1370 + 1) ; i++) {
|
||||
virDomainSoundDefPtr sound;
|
||||
if (VIR_ALLOC(sound) < 0)
|
||||
goto no_memory;
|
||||
|
@ -38,6 +38,5 @@
|
||||
<graphics type='vnc' port='5903' autoport='no' keymap='ja'/>
|
||||
<sound model='sb16'/>
|
||||
<sound model='es1370'/>
|
||||
<sound model='pcspk'/>
|
||||
</devices>
|
||||
</domain>
|
||||
|
Loading…
x
Reference in New Issue
Block a user