vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Oct 5 20:28:18 2011 +0300| [f094d815a50241ea2d00cb493ff9ab33950d21a7] | committer: Rémi Denis-Courmont
ALSA: list default and configured device in choice list (fix #4995) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f094d815a50241ea2d00cb493ff9ab33950d21a7 --- modules/audio_output/alsa.c | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/modules/audio_output/alsa.c b/modules/audio_output/alsa.c index f2df6cc..6619864 100644 --- a/modules/audio_output/alsa.c +++ b/modules/audio_output/alsa.c @@ -745,6 +745,7 @@ static int FindDevicesCallback( vlc_object_t *p_this, char const *psz_name, static void GetDevices (vlc_object_t *obj, module_config_t *item) { void **hints; + bool hinted_default = false; msg_Dbg(obj, "Available ALSA PCM devices:"); @@ -771,6 +772,9 @@ static void GetDevices (vlc_object_t *obj, module_config_t *item) *lf = ' '; msg_Dbg(obj, "%s (%s)", (desc != NULL) ? desc : name, name); + if (!strcmp (name, "default")) + hinted_default = true; + if (item != NULL) { item->ppsz_list = xrealloc(item->ppsz_list, @@ -803,4 +807,25 @@ static void GetDevices (vlc_object_t *obj, module_config_t *item) item->ppsz_list[item->i_list] = NULL; item->ppsz_list_text[item->i_list] = NULL; } + else + { + vlc_value_t val, text; + + if (!hinted_default) + { + val.psz_string = (char *)"default"; + text.psz_string = (char *)N_("Default"); + var_Change(obj, "audio-device", VLC_VAR_ADDCHOICE, &val, &text); + } + + val.psz_string = var_InheritString (obj, "alsa-audio-device"); + if (likely(val.psz_string != NULL) + && strcmp (val.psz_string, "default")) + { + text.psz_string = (char *)N_("VLC preferences"); + var_Change(obj, "audio-device", VLC_VAR_ADDCHOICE, &val, &text); + } + var_Change(obj, "audio-device", VLC_VAR_SETVALUE, &val, NULL); + free (val.psz_string); + } } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
