vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Apr 7 18:39:24 2013 +0300| [e911cf1f8b7e59bb8b1fb759cb264827df2f91d4] | committer: Rémi Denis-Courmont
aout: fix and partly clean-up the "visual" callback > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e911cf1f8b7e59bb8b1fb759cb264827df2f91d4 --- src/audio_output/filters.c | 45 ++++++++++---------------------------------- 1 file changed, 10 insertions(+), 35 deletions(-) diff --git a/src/audio_output/filters.c b/src/audio_output/filters.c index 4582693..5e48f6a 100644 --- a/src/audio_output/filters.c +++ b/src/audio_output/filters.c @@ -275,52 +275,27 @@ static block_t *aout_FiltersPipelinePlay(filter_t *const *filters, } /** Callback for visualization selection */ -static int VisualizationCallback (vlc_object_t *obj, char const *var, +static int VisualizationCallback (vlc_object_t *obj, const char *var, vlc_value_t oldval, vlc_value_t newval, void *data) { - audio_output_t *aout = (audio_output_t *)obj; const char *mode = newval.psz_string; if (!*mode) - { - ChangeFiltersString (obj, "audio-visual", "goom", false); - ChangeFiltersString (obj, "audio-visual", "visual", false); - ChangeFiltersString (obj, "audio-visual", "projectm", false); - ChangeFiltersString (obj, "audio-visual", "vsxu", false); - } - else if (!strcmp ("goom", mode)) - { - ChangeFiltersString (obj, "audio-visual", "visual", false ); - ChangeFiltersString (obj, "audio-visual", "goom", true ); - ChangeFiltersString (obj, "audio-visual", "projectm", false ); - ChangeFiltersString (obj, "audio-visual", "vsxu", false); - } - else if (!strcmp ("projectm", mode)) - { - ChangeFiltersString (obj, "audio-visual", "visual", false); - ChangeFiltersString (obj, "audio-visual", "goom", false); - ChangeFiltersString (obj, "audio-visual", "projectm", true); - ChangeFiltersString (obj, "audio-visual", "vsxu", false); - } - else if (!strcmp ("vsxu", mode)) - { - ChangeFiltersString (obj, "audio-visual", "visual", false); - ChangeFiltersString (obj, "audio-visual", "goom", false); - ChangeFiltersString (obj, "audio-visual", "projectm", false); - ChangeFiltersString (obj, "audio-visual", "vsxu", true); - } - else + mode = "none"; + /* FIXME: This ugly hack enforced by visual effect-list, as is the need for + * separate "visual" (external) and "audio-visual" (internal) variables... + * The visual plugin should have one submodule per effect instead. */ + if (strcasecmp (mode, "none") && strcasecmp (mode, "goom") + && strcasecmp (mode, "projectm") && strcasecmp (mode, "vsxu")) { var_Create (obj, "effect-list", VLC_VAR_STRING); var_SetString (obj, "effect-list", mode); - - ChangeFiltersString (obj, "audio-visual", "goom", false); - ChangeFiltersString (obj, "audio-visual", "visual", true); - ChangeFiltersString (obj, "audio-visual", "projectm", false); + mode = "visual"; } - aout_InputRequestRestart (aout); + var_SetString (obj, "audio-visual", mode); + aout_InputRequestRestart ((audio_output_t *)obj); (void) var; (void) oldval; (void) data; return VLC_SUCCESS; } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
