vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Oct 2 15:44:49 2011 +0300| [90cce4e05af1412c1d7b7c2b92c5f7028afc3dfc] | committer: Rémi Denis-Courmont
ALSA: remove variable callback (refs #5273) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=90cce4e05af1412c1d7b7c2b92c5f7028afc3dfc --- modules/audio_output/alsa.c | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/audio_output/alsa.c b/modules/audio_output/alsa.c index 00f8f54..f2df6cc 100644 --- a/modules/audio_output/alsa.c +++ b/modules/audio_output/alsa.c @@ -147,18 +147,17 @@ static void DumpDeviceStatus (vlc_object_t *obj, snd_pcm_t *pcm) static void Probe (vlc_object_t *obj) { /* Due to design bug in audio output core, this hack is required: */ - if (var_Type (obj, "audio-device")) - return; - - /* The variable does not exist - first call. */ - vlc_value_t text; - - var_Create (obj, "audio-device", VLC_VAR_STRING | VLC_VAR_HASCHOICE); - text.psz_string = _("Audio Device"); - var_Change (obj, "audio-device", VLC_VAR_SETTEXT, &text, NULL); + if (var_Type (obj, "audio-device") == 0) + { + /* The variable does not exist - first call. */ + vlc_value_t text; - GetDevices (obj, NULL); + var_Create (obj, "audio-device", VLC_VAR_STRING | VLC_VAR_HASCHOICE); + text.psz_string = _("Audio Device"); + var_Change (obj, "audio-device", VLC_VAR_SETTEXT, &text, NULL); + GetDevices (obj, NULL); + } var_AddCallback (obj, "audio-device", aout_ChannelsRestart, NULL); var_TriggerCallback (obj, "intf-change"); } @@ -697,6 +696,7 @@ static void Close (vlc_object_t *obj) aout_sys_t *sys = aout->sys; snd_pcm_t *pcm = aout->sys->pcm; + var_DelCallback (obj, "audio-device", aout_ChannelsRestart, NULL); snd_pcm_drop (pcm); snd_pcm_close (pcm); free (sys); _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
