Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.2:Update
alsa
alsa-lib-git-fixes.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File alsa-lib-git-fixes.diff of Package alsa
diff --git a/configure.in b/configure.in index e96058b..3cd6366 100644 --- a/configure.in +++ b/configure.in @@ -12,7 +12,7 @@ dnl add API = c+1:0:a+1 dnl remove API = c+1:0:0 dnl ************************************************* AC_CANONICAL_HOST -AM_INIT_AUTOMAKE(alsa-lib, 1.0.21) +AM_INIT_AUTOMAKE(alsa-lib, 1.0.21a) eval LIBTOOL_VERSION_INFO="2:0:0" dnl ************************************************* AM_CONDITIONAL(INSTALL_M4, test -n "${ACLOCAL}") diff --git a/src/conf.c b/src/conf.c index 3f0dfe1..570c90f 100644 --- a/src/conf.c +++ b/src/conf.c @@ -3477,8 +3477,9 @@ int snd_config_hook_load_for_all_cards(snd_config_t *root, snd_config_t *config, err = snd_determine_driver(card, &fdriver); if (err < 0) return err; - if (snd_config_search(root, fdriver, &n) >= 0 && - snd_config_get_string(n, &driver) >= 0) { + if (snd_config_search(root, fdriver, &n) >= 0) { + if (snd_config_get_string(n, &driver) < 0) + goto __err; assert(driver); while (1) { char *s = strchr(driver, '.'); diff --git a/src/conf/pcm/dmix.conf b/src/conf/pcm/dmix.conf index 4108ddb..e62cb29 100644 --- a/src/conf/pcm/dmix.conf +++ b/src/conf/pcm/dmix.conf @@ -63,12 +63,12 @@ pcm.!dmix { name { @func concat strings [ - "cards." + "defaults.dmix." { @func card_driver card $CARD } - ".pcm.dmix.period_size" + ".period_size" ] } default 1024 @@ -78,12 +78,12 @@ pcm.!dmix { name { @func concat strings [ - "cards." + "defaults.dmix." { @func card_driver card $CARD } - ".pcm.dmix.period_time" + ".period_time" ] } default -1 @@ -93,12 +93,12 @@ pcm.!dmix { name { @func concat strings [ - "cards." + "defaults.dmix." { @func card_driver card $CARD } - ".pcm.dmix.periods" + ".periods" ] } default 16 diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 4802200..9259a08 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -134,6 +134,7 @@ static int get_compare_weight(const char *name, unsigned int idx) static const char *const names[] = { "Master", "Headphone", + "Speaker", "Tone", "Bass", "Treble", @@ -158,6 +159,7 @@ static int get_compare_weight(const char *name, unsigned int idx) "I2S", "IEC958", "PC Speaker", + "Beep", "Aux", "Mono", "Playback", diff --git a/src/pcm/pcm_params.c b/src/pcm/pcm_params.c index 80b3fd2..0e1c3fc 100644 --- a/src/pcm/pcm_params.c +++ b/src/pcm/pcm_params.c @@ -1081,6 +1081,7 @@ int snd_pcm_hw_param_never_eq(const snd_pcm_hw_params_t *params, static int snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) { int err; + const char *compat = getenv("LIBASOUND_COMPAT"); #ifdef CHOOSE_DEBUG snd_output_t *log; snd_output_stdio_attach(&log, stderr, 0); @@ -1103,15 +1104,29 @@ static int snd_pcm_hw_params_choose(snd_pcm_t *pcm, snd_pcm_hw_params_t *params) err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_RATE, NULL, 0); if (err < 0) return err; - err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_TIME, NULL, 0); - if (err < 0) - return err; - err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_SIZE, NULL, 0); - if (err < 0) - return err; - err = snd_pcm_hw_param_set_last(pcm, params, SND_PCM_HW_PARAM_BUFFER_SIZE, NULL, 0); - if (err < 0) - return err; + if (compat && *compat) { + /* old mode */ + err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_TIME, NULL, 0); + if (err < 0) + return err; + err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_SIZE, NULL, 0); + if (err < 0) + return err; + err = snd_pcm_hw_param_set_last(pcm, params, SND_PCM_HW_PARAM_BUFFER_SIZE, NULL, 0); + if (err < 0) + return err; + } else { + /* determine buffer size first */ + err = snd_pcm_hw_param_set_last(pcm, params, SND_PCM_HW_PARAM_BUFFER_SIZE, NULL, 0); + if (err < 0) + return err; + err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_SIZE, NULL, 0); + if (err < 0) + return err; + err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_PERIOD_TIME, NULL, 0); + if (err < 0) + return err; + } err = snd_pcm_hw_param_set_first(pcm, params, SND_PCM_HW_PARAM_TICK_TIME, NULL, 0); if (err < 0) return err;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor