diff --git a/gtk2_ardour/cue_editor.cc b/gtk2_ardour/cue_editor.cc index 33d867160c..9926c90682 100644 --- a/gtk2_ardour/cue_editor.cc +++ b/gtk2_ardour/cue_editor.cc @@ -258,12 +258,6 @@ CueEditor::history_changed () update_undo_redo_actions (_history); } -std::pair -CueEditor::max_zoom_extent() const -{ - return std::make_pair (Temporal::timepos_t (Temporal::Beats()), Temporal::timepos_t (Temporal::Beats (32, 0))); -} - Temporal::timepos_t CueEditor::_get_preferred_edit_position (Editing::EditIgnoreOption ignore, bool from_context_menu, bool from_outside_canvas) { diff --git a/gtk2_ardour/cue_editor.h b/gtk2_ardour/cue_editor.h index 4e9a139e4a..5375d905b3 100644 --- a/gtk2_ardour/cue_editor.h +++ b/gtk2_ardour/cue_editor.h @@ -104,8 +104,6 @@ class CueEditor : public EditingContext, public PBD::HistoryOwner, public sigc:: void do_undo (uint32_t n); void do_redo (uint32_t n); - std::pair max_zoom_extent() const; - Temporal::timepos_t _get_preferred_edit_position (Editing::EditIgnoreOption, bool use_context_click, bool from_outside_canvas); }; diff --git a/gtk2_ardour/midi_cue_editor.cc b/gtk2_ardour/midi_cue_editor.cc index f81a5725bc..dbb7f3d2b4 100644 --- a/gtk2_ardour/midi_cue_editor.cc +++ b/gtk2_ardour/midi_cue_editor.cc @@ -2054,3 +2054,23 @@ MidiCueEditor::build_zoom_focus_menu () zoom_focus_selector.set_sizing_texts (zoom_focus_strings); } + +std::pair +MidiCueEditor::max_zoom_extent() const +{ + if (view && view->midi_region()) { + return std::make_pair (Temporal::timepos_t (Temporal::Beats()), Temporal::timepos_t (view->midi_region()->midi_source()->length().beats())); + } + + return std::make_pair (Temporal::timepos_t (Temporal::Beats()), Temporal::timepos_t (Temporal::Beats (32, 0))); +} + +void +MidiCueEditor::full_zoom_clicked() +{ + /* XXXX NEED LOCAL TEMPO MAP */ + + std::pair dur (max_zoom_extent()); + samplecnt_t s = dur.second.samples() - dur.first.samples(); + reposition_and_zoom (0, (s / (double) _visible_canvas_width)); +} diff --git a/gtk2_ardour/midi_cue_editor.h b/gtk2_ardour/midi_cue_editor.h index 437e8d84a3..7761653eb2 100644 --- a/gtk2_ardour/midi_cue_editor.h +++ b/gtk2_ardour/midi_cue_editor.h @@ -124,6 +124,8 @@ class MidiCueEditor : public CueEditor void set_trigger_length (Temporal::timecnt_t const &); void set_trigger_bounds (Temporal::timepos_t const &, Temporal::timepos_t const &); + void full_zoom_clicked(); + protected: void register_actions (); @@ -264,6 +266,6 @@ class MidiCueEditor : public CueEditor void automation_state_changed (); void build_zoom_focus_menu (); + + std::pair max_zoom_extent() const; }; - -