X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Frhythm_ferret.h;h=8132ad27b5a007f42aabd6771f9fa6bfa35f6e7c;hb=d7deaa21bb78222e25b820c9583942a47dbc8fac;hp=91c10695ad38b1dd3ad4664771c2cc36a5a13067;hpb=68e943265edf04e63a8e8b8f62bab20f99d9c637;p=ardour.git diff --git a/gtk2_ardour/rhythm_ferret.h b/gtk2_ardour/rhythm_ferret.h index 91c10695ad..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,92 +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; - /* operation frame */ - - Gtk::VBox op_packer; - Gtk::RadioButtonGroup operation_button_group; - Gtk::RadioButton region_split_button; - Gtk::RadioButton tempo_button; - Gtk::RadioButton region_conform_button; + private: + Editor& editor; - /* analysis frame */ + Gtk::ComboBoxText operation_selector; - Gtk::VBox ferret_packer; Gtk::ComboBoxText analysis_mode_selector; - Gtk::Label analysis_mode_label; /* transient detection widgets */ 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; - Gtk::VBox perc_onset_packer; /* onset detection widgets */ Gtk::ComboBoxText onset_detection_function_selector; - Gtk::Label onset_function_label; Gtk::Adjustment peak_picker_threshold_adjustment; Gtk::HScale peak_picker_threshold_scale; - Gtk::Label peak_picker_label; Gtk::Adjustment silence_threshold_adjustment; Gtk::HScale silence_threshold_scale; - Gtk::Label silence_label; - Gtk::VBox note_onset_packer; /* generic stuff */ Gtk::Adjustment trigger_gap_adjustment; Gtk::SpinButton trigger_gap_spinner; - Gtk::Label trigger_gap_label; - Gtk::VBox analysis_packer; - - 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_note_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 ();