From 0518e1e88f16c42e1eac764ea0ca57aa66304b45 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 26 Jun 2020 12:45:39 +0200 Subject: [PATCH] Make plugin list lengths configuable --- gtk2_ardour/mixer_ui.cc | 3 ++- gtk2_ardour/plugin_selector.cc | 4 ++-- gtk2_ardour/rc_option_editor.cc | 28 ++++++++++++++++++++++++++++ gtk2_ardour/rc_option_editor.h | 1 + gtk2_ardour/ui_config_vars.h | 2 ++ 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc index 48cc54eadb..0094a4795f 100644 --- a/gtk2_ardour/mixer_ui.cc +++ b/gtk2_ardour/mixer_ui.cc @@ -3167,7 +3167,7 @@ Mixer_UI::refill_favorite_plugins () { PluginChartsSorter cmp; plugs.sort (cmp); - plugs.resize (std::min (plugs.size(), size_t(10))); + plugs.resize (std::min (plugs.size(), size_t(UIConfiguration::instance().get_max_plugin_chart()))); } break; case PLM_Recent: @@ -3175,6 +3175,7 @@ Mixer_UI::refill_favorite_plugins () PluginRecentSorter cmp; plugs.sort (cmp); plugs.resize (std::min (plugs.size(), size_t(10))); + plugs.resize (std::min (plugs.size(), size_t(UIConfiguration::instance().get_max_plugin_recent()))); } break; } diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc index 6ccae76e2f..e49894af32 100644 --- a/gtk2_ardour/plugin_selector.cc +++ b/gtk2_ardour/plugin_selector.cc @@ -970,7 +970,7 @@ PluginSelector::build_plugin_menu () items.push_back (SeparatorElem ()); Menu* charts = create_charts_menu(all_plugs); - items.push_back (MenuElem (_("Top-10"), *manage (charts))); + items.push_back (MenuElem (_("By Popularity"), *manage (charts))); Menu* by_creator = create_by_creator_menu(all_plugs); items.push_back (MenuElem (_("By Creator"), *manage (by_creator))); @@ -1048,7 +1048,7 @@ PluginSelector::create_charts_menu (PluginInfoList& all_plugs) } PluginChartsSorter cmp; plugs.sort (cmp); - plugs.resize (std::min (plugs.size(), size_t(10))); + plugs.resize (std::min (plugs.size(), size_t(UIConfiguration::instance().get_max_plugin_chart()))); PluginABCSorter abc; plugs.sort (abc); diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index 5cf83ae1af..206c672e4c 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -3767,6 +3767,30 @@ RCOptionEditor::RCOptionEditor () _("When enabled show a dialog to select instrument channel configuration before adding a multichannel plugin.")); #endif + add_option (_("Plugins"), new OptionEditorHeading (_("Statistics"))); + + add_option (_("Plugins"), + new RcActionButton (_("Reset Statistics"), + sigc::mem_fun (*this, &RCOptionEditor::plugin_reset_stats))); + + add_option (_("Plugins"), + new SpinOption ( + "max-plugin-chart", + _("Plugin chart (use-count) length"), + sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_max_plugin_chart), + sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_max_plugin_chart), + 10, 25, 1, 5 + )); + + add_option (_("Plugins"), + new SpinOption ( + "max-plugin-recent", + _("Plugin recent list length"), + sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::get_max_plugin_recent), + sigc::mem_fun (UIConfiguration::instance(), &UIConfiguration::set_max_plugin_recent), + 10, 50, 1, 5 + )); + add_option (_("Plugins"), new OptionEditorBlank ()); /* INTERFACE */ @@ -4296,6 +4320,10 @@ void RCOptionEditor::plugin_scan_refresh () { psd.start (); } +void RCOptionEditor::plugin_reset_stats () { + PluginManager::instance().reset_stats(); +} + void RCOptionEditor::clear_vst_cache () { PluginManager::instance().clear_vst_cache(); } diff --git a/gtk2_ardour/rc_option_editor.h b/gtk2_ardour/rc_option_editor.h index 55b9c63433..c37bd273e5 100644 --- a/gtk2_ardour/rc_option_editor.h +++ b/gtk2_ardour/rc_option_editor.h @@ -65,6 +65,7 @@ private: /* plugin actions */ void plugin_scan_refresh (); + void plugin_reset_stats (); void clear_vst_cache (); void clear_vst_blacklist (); void clear_au_cache (); diff --git a/gtk2_ardour/ui_config_vars.h b/gtk2_ardour/ui_config_vars.h index 1ecff7b1f7..1392baf7f8 100644 --- a/gtk2_ardour/ui_config_vars.h +++ b/gtk2_ardour/ui_config_vars.h @@ -103,6 +103,8 @@ UI_CONFIG_VARIABLE (bool, save_export_analysis_image, "save-export-analysis-imag UI_CONFIG_VARIABLE (bool, save_export_mixer_screenshot, "save-export-mixer-screenshot", false) UI_CONFIG_VARIABLE (bool, open_gui_after_adding_plugin, "open-gui-after-adding-plugin", true) UI_CONFIG_VARIABLE (bool, show_inline_display_by_default, "show-inline-display-by-default", true) +UI_CONFIG_VARIABLE (int32_t, max_plugin_chart, "max-plugin-chart", 10) +UI_CONFIG_VARIABLE (int32_t, max_plugin_recent, "max-plugin-recent", 10) UI_CONFIG_VARIABLE (bool, prefer_inline_over_gui, "prefer-inline-over-gui", true) UI_CONFIG_VARIABLE (uint32_t, max_inline_controls, "max-inline-controls", 32) /* per processor */ UI_CONFIG_VARIABLE (uint32_t, action_table_columns, "action-table-columns", 3)