X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Frhythm_ferret.h;h=f0919168822e47ec083494623ffbd1e8bb2f343f;hb=6e469ffb5e0fa93fff77f7559e5b94861f9e1be7;hp=68d3d5f9e46445549df865b715dc21146a4f7a22;hpb=bb9cc45cd22af67ac275a5e73accbe14fee664d8;p=ardour.git diff --git a/gtk2_ardour/rhythm_ferret.h b/gtk2_ardour/rhythm_ferret.h index 68d3d5f9e4..f091916882 100644 --- a/gtk2_ardour/rhythm_ferret.h +++ b/gtk2_ardour/rhythm_ferret.h @@ -1,3 +1,22 @@ +/* + Copyright (C) 2012 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef __gtk2_ardour_rhythm_ferret_h__ #define __gtk2_ardour_rhythm_ferret_h__ @@ -10,15 +29,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,12 +52,11 @@ class RhythmFerret : public ArdourDialog { enum Action { SplitRegion, - DefineTempoMap, + SnapRegionsToGrid, ConformRegion }; - RhythmFerret (PublicEditor&); - ~RhythmFerret (); + RhythmFerret (Editor&); void set_session (ARDOUR::Session*); @@ -46,79 +64,57 @@ class RhythmFerret : public ArdourDialog { void on_hide (); private: - PublicEditor& editor; - - Gtk::HBox upper_hpacker; - Gtk::HBox lower_hpacker; + Editor& editor; - Gtk::Frame operation_frame; - Gtk::Frame selection_frame; - Gtk::Frame ferret_frame; + Gtk::ComboBoxText operation_selector; - 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; - - /* analysis frame */ - - 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; +#ifdef HAVE_AUBIO4 + Gtk::Adjustment minioi_adjustment; + Gtk::HScale minioi_scale; +#endif /* 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 ();