X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Frhythm_ferret.h;h=8132ad27b5a007f42aabd6771f9fa6bfa35f6e7c;hb=90619f4b9869ceccb29965e916ec07fe197b86da;hp=2ddb2a4ffde2679856f1d50ea77130c047594665;hpb=997e4b1f9cd7ccfc704b7c035051da7f60d831e7;p=ardour.git diff --git a/gtk2_ardour/rhythm_ferret.h b/gtk2_ardour/rhythm_ferret.h index 2ddb2a4ffd..8132ad27b5 100644 --- a/gtk2_ardour/rhythm_ferret.h +++ b/gtk2_ardour/rhythm_ferret.h @@ -10,15 +10,15 @@ #include #include #include -#include #include "ardour_dialog.h" +#include "region_selection.h" namespace ARDOUR { class Readable; } -class PublicEditor; +class Editor; class RegionView; class RhythmFerret : public ArdourDialog { @@ -33,67 +33,65 @@ class RhythmFerret : public ArdourDialog { enum Action { SplitRegion, - DefineTempoMap, + SnapRegionsToGrid, ConformRegion }; - - RhythmFerret (PublicEditor&); - ~RhythmFerret (); + + RhythmFerret (Editor&); void set_session (ARDOUR::Session*); protected: void on_hide (); - - private: - PublicEditor& editor; - - Gtk::HBox upper_hpacker; - Gtk::HBox lower_hpacker; - Gtk::Frame operation_frame; - Gtk::Frame selection_frame; - Gtk::Frame ferret_frame; - - Gtk::VBox op_logo_packer; - Gtk::Image* logo; + private: + Editor& editor; - /* operation frame */ + Gtk::ComboBoxText operation_selector; - Gtk::VBox op_packer; - Gtk::RadioButtonGroup operation_button_group; - Gtk::RadioButton region_split_button; - Gtk::RadioButton tempo_button; - Gtk::RadioButton region_conform_button; + Gtk::ComboBoxText analysis_mode_selector; - /* analysis frame */ + /* transient detection widgets */ - Gtk::VBox ferret_packer; - Gtk::ComboBoxText analysis_mode_selector; - Gtk::Label analysis_mode_label; Gtk::Adjustment detection_threshold_adjustment; Gtk::HScale detection_threshold_scale; - Gtk::Label detection_threshold_label; Gtk::Adjustment sensitivity_adjustment; Gtk::HScale sensitivity_scale; - Gtk::Label sensitivity_label; Gtk::Button analyze_button; + + /* onset detection widgets */ + + Gtk::ComboBoxText onset_detection_function_selector; + Gtk::Adjustment peak_picker_threshold_adjustment; + Gtk::HScale peak_picker_threshold_scale; + Gtk::Adjustment silence_threshold_adjustment; + Gtk::HScale silence_threshold_scale; + + /* generic stuff */ + Gtk::Adjustment trigger_gap_adjustment; Gtk::SpinButton trigger_gap_spinner; - Gtk::Label trigger_gap_label; - Gtk::Label operation_clarification_label; Gtk::Button action_button; std::vector analysis_mode_strings; + std::vector onset_function_strings; + std::vector operation_strings; ARDOUR::AnalysisFeatureList current_results; + void clear_transients (); + /** Regions that we have added transient marks to */ + RegionSelection regions_with_transients; + AnalysisMode get_analysis_mode () const; Action get_action() const; + void analysis_mode_changed (); + int get_note_onset_function (); void run_analysis (); - int run_percussion_onset_analysis (boost::shared_ptr region, nframes64_t offset, ARDOUR::AnalysisFeatureList& results); + int run_percussion_onset_analysis (boost::shared_ptr region, ARDOUR::frameoffset_t offset, ARDOUR::AnalysisFeatureList& results); + int run_note_onset_analysis (boost::shared_ptr region, ARDOUR::frameoffset_t offset, ARDOUR::AnalysisFeatureList& results); void do_action (); void do_split_action ();