From 000de706345d2a57db6af2a35c7cde091e676e4a Mon Sep 17 00:00:00 2001 From: Andrzej Rybczak Date: Wed, 7 Dec 2016 20:13:51 +0100 Subject: [PATCH] settings: deprecate visualizer_sample_multiplier --- NEWS | 1 + doc/bindings | 3 --- doc/config | 6 ------ doc/ncmpcpp.1 | 3 --- src/actions.cpp | 27 --------------------------- src/actions.h | 11 ----------- src/bindings.cpp | 12 ++++++++++-- src/help.cpp | 1 - src/settings.cpp | 18 ++++++++---------- src/settings.h | 1 - src/visualizer.cpp | 27 +++++++++++---------------- 11 files changed, 30 insertions(+), 80 deletions(-) diff --git a/NEWS b/NEWS index b925cbd7..3819b092 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,7 @@ ncmpcpp-0.8 (????-??-??) * When an attempt to write tags fails, show detailed error message. * Support for fetching lyrics for selected items in background was added. * Application will now exit if stdin is closed. +* Configuration variable 'visualizer_sample_multiplier' was deprecated and will be removed in 0.9. ncmpcpp-0.7.7 (2016-10-31) * Fixed compilation on 32bit platforms. diff --git a/doc/bindings b/doc/bindings index 468f5ad3..d5217b93 100644 --- a/doc/bindings +++ b/doc/bindings @@ -471,9 +471,6 @@ #def_key "m" # move_selected_items_up # -#def_key "m" -# set_visualizer_sample_multiplier -# #def_key "n" # move_sort_order_down # diff --git a/doc/config b/doc/config index 7353f15c..caebb7a0 100644 --- a/doc/config +++ b/doc/config @@ -71,12 +71,6 @@ #visualizer_in_stereo = yes # ## -## Multiply received samples by given value. Very -## useful for proper visualization of quiet music. -## -#visualizer_sample_multiplier = 1 -# -## ## Note: Below parameter defines how often ncmpcpp ## has to "synchronize" visualizer and audio outputs. ## 30 seconds is optimal value, but if you experience diff --git a/doc/ncmpcpp.1 b/doc/ncmpcpp.1 index 496dce9b..5f30c09b 100644 --- a/doc/ncmpcpp.1 +++ b/doc/ncmpcpp.1 @@ -82,9 +82,6 @@ Name of output that provides data for visualizer. Needed to keep sound and visua .B visualizer_in_stereo = yes/no Should be set to 'yes', if fifo output's format was set to 44100:16:2. .TP -.B visualizer_sample_multiplier = NUMBER -Multiply received samples by given value. Very useful for proper visualization of quiet music. -.TP .B visualizer_sync_interval = SECONDS Defines interval between syncing visualizer and audio outputs. .TP diff --git a/src/actions.cpp b/src/actions.cpp index c3e088f9..3b4bf882 100644 --- a/src/actions.cpp +++ b/src/actions.cpp @@ -2355,32 +2355,6 @@ void ToggleVisualizationType::run() # endif // ENABLE_VISUALIZER } -bool SetVisualizerSampleMultiplier::canBeRun() -{ -# ifdef ENABLE_VISUALIZER - return myScreen == myVisualizer; -# else - return false; -# endif // ENABLE_VISUALIZER -} - -void SetVisualizerSampleMultiplier::run() -{ -# ifdef ENABLE_VISUALIZER - using Global::wFooter; - - double multiplier; - { - Statusbar::ScopedLock slock; - Statusbar::put() << "Set visualizer sample multiplier: "; - multiplier = fromString(wFooter->prompt()); - lowerBoundCheck(multiplier, 0.0); - Config.visualizer_sample_multiplier = multiplier; - } - Statusbar::printf("Visualizer sample multiplier set to %1%", multiplier); -# endif // ENABLE_VISUALIZER -} - void ShowSongInfo::run() { mySongInfo->switchTo(); @@ -2807,7 +2781,6 @@ void populateActions() insert_action(new Actions::SetSelectedItemsPriority()); insert_action(new Actions::ToggleOutput()); insert_action(new Actions::ToggleVisualizationType()); - insert_action(new Actions::SetVisualizerSampleMultiplier()); insert_action(new Actions::ShowSongInfo()); insert_action(new Actions::ShowArtistInfo()); insert_action(new Actions::ShowLyrics()); diff --git a/src/actions.h b/src/actions.h index 300e8ee4..7806acb5 100644 --- a/src/actions.h +++ b/src/actions.h @@ -142,7 +142,6 @@ enum class Type SetSelectedItemsPriority, ToggleOutput, ToggleVisualizationType, - SetVisualizerSampleMultiplier, ShowSongInfo, ShowArtistInfo, ShowLyrics, @@ -1217,16 +1216,6 @@ private: virtual void run() override; }; -struct SetVisualizerSampleMultiplier: BaseAction -{ - SetVisualizerSampleMultiplier() - : BaseAction(Type::SetVisualizerSampleMultiplier, "set_visualizer_sample_multiplier") { } - -private: - virtual bool canBeRun() override; - virtual void run() override; -}; - struct ShowSongInfo: BaseAction { ShowSongInfo(): BaseAction(Type::ShowSongInfo, "show_song_info") { } diff --git a/src/bindings.cpp b/src/bindings.cpp index 4d89c47b..729371d8 100644 --- a/src/bindings.cpp +++ b/src/bindings.cpp @@ -140,7 +140,16 @@ std::shared_ptr parseActionLine(const std::string &line, F size_t i = 0; for (; i < line.size() && !isspace(line[i]); ++i) { } if (i == line.size()) // only action name - result = Actions::get_(line); + { + if (line == "set_visualizer_sample_multiplier") + { + warning("action 'set_visualizer_sample_multiplier' is deprecated" + " and will be removed in 0.9"); + result = Actions::get_(Actions::Type::Dummy); + } + else + result = Actions::get_(line); + } else // there is something else { std::string action_name = line.substr(0, i); @@ -694,7 +703,6 @@ void BindingsConfiguration::generateDefaults() { bind(k, Actions::Type::MoveSortOrderUp); bind(k, Actions::Type::MoveSelectedItemsUp); - bind(k, Actions::Type::SetVisualizerSampleMultiplier); } if (notBound(k = stringToKey("n"))) { diff --git a/src/help.cpp b/src/help.cpp index 51e0a6f2..705639d4 100644 --- a/src/help.cpp +++ b/src/help.cpp @@ -339,7 +339,6 @@ void write_bindings(NC::Scrollpad &w) # if defined(ENABLE_VISUALIZER) && defined(HAVE_FFTW3_H) key_section(w, "Music visualizer"); key(w, Type::ToggleVisualizationType, "Toggle visualization type"); - key(w, Type::SetVisualizerSampleMultiplier, "Set visualizer sample multiplier"); # endif // ENABLE_VISUALIZER && HAVE_FFTW3_H mouse_section(w, "Global"); diff --git a/src/settings.cpp b/src/settings.cpp index f1024e1b..5a348afd 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -177,13 +177,12 @@ NC::Buffer buffer(const std::string &v) return result; } -/* void deprecated(const char *option, double version_removal) { - std::cerr << "WARNING: " << option - << " is deprecated and will be removed in " << version_removal << "\n"; + std::cerr << "WARNING: Variable '" << option + << "' is deprecated and will be removed in " + << version_removal << "\n"; } -*/ } @@ -191,6 +190,11 @@ bool Configuration::read(const std::vector &config_paths, bool igno { option_parser p; + p.add("visualizer_sample_multiplier", nullptr, "", [](std::string v) { + if (!v.empty()) + deprecated("visualizer_sample_multiplier", 0.9); + }); + // keep the same order of variables as in configuration file p.add("ncmpcpp_directory", &ncmpcpp_directory, "~/.ncmpcpp/", adjust_directory); p.add("lyrics_directory", &lyrics_directory, "~/.lyrics/", adjust_directory); @@ -207,12 +211,6 @@ bool Configuration::read(const std::vector &config_paths, bool igno p.add("visualizer_fifo_path", &visualizer_fifo_path, "/tmp/mpd.fifo", adjust_path); p.add("visualizer_output_name", &visualizer_output_name, "Visualizer feed"); p.add("visualizer_in_stereo", &visualizer_in_stereo, "yes", yes_no); - p.add("visualizer_sample_multiplier", &visualizer_sample_multiplier, "1", - [](std::string v) { - double multiplier = verbose_lexical_cast(v); - lowerBoundCheck(multiplier, 0.0); - return multiplier; - }); p.add("visualizer_sync_interval", &visualizer_sync_interval, "30", [](std::string v) { unsigned sync_interval = verbose_lexical_cast(v); diff --git a/src/settings.h b/src/settings.h index f199d457..c1386b0c 100644 --- a/src/settings.h +++ b/src/settings.h @@ -183,7 +183,6 @@ struct Configuration boost::posix_time::seconds playlist_disable_highlight_delay; boost::posix_time::seconds visualizer_sync_interval; - double visualizer_sample_multiplier; double locked_screen_width_part; size_t selected_item_prefix_length; diff --git a/src/visualizer.cpp b/src/visualizer.cpp index 0b2ea1ab..093faeea 100644 --- a/src/visualizer.cpp +++ b/src/visualizer.cpp @@ -148,29 +148,24 @@ void Visualizer::update() } const ssize_t samples_read = data/sizeof(int16_t); - if (Config.visualizer_sample_multiplier == 1.0) - { - m_auto_scale_multiplier += 1.0/fps; - std::for_each(buf, buf+samples_read, [this](int16_t &sample) { + m_auto_scale_multiplier += 1.0/fps; + std::for_each(buf, buf+samples_read, [this](int16_t &sample) { double scale = std::numeric_limits::min(); scale /= sample; scale = fabs(scale); if (scale < m_auto_scale_multiplier) m_auto_scale_multiplier = scale; }); - } std::for_each(buf, buf+samples_read, [this](int16_t &sample) { - int32_t tmp = sample; - if (Config.visualizer_sample_multiplier != 1.0) - tmp *= Config.visualizer_sample_multiplier; - else if (m_auto_scale_multiplier <= 50.0) // limit the auto scale - tmp *= m_auto_scale_multiplier; - if (tmp < std::numeric_limits::min()) - sample = std::numeric_limits::min(); - else if (tmp > std::numeric_limits::max()) - sample = std::numeric_limits::max(); - else - sample = tmp; + int32_t tmp = sample; + if (m_auto_scale_multiplier <= 50.0) // limit the auto scale + tmp *= m_auto_scale_multiplier; + if (tmp < std::numeric_limits::min()) + sample = std::numeric_limits::min(); + else if (tmp > std::numeric_limits::max()) + sample = std::numeric_limits::max(); + else + sample = tmp; }); w.clear();