mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-20 13:46:30 +01:00
make edit clock do something useful again; do sensible guess work on how to define edit op range
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2615 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
d79ff102e8
commit
85dbd75bb0
8 changed files with 62 additions and 17 deletions
|
|
@ -1319,7 +1319,7 @@ widget "*AudioClockBBTUpperInfo" style:highest "tempo_meter_clock_display"
|
|||
widget "*AudioClockBBTLowerInfo" style:highest "tempo_meter_clock_display"
|
||||
widget "*SelectionStartClock" style:highest "default_clock_display"
|
||||
widget "*SelectionEndClock" style:highest "default_clock_display"
|
||||
widget "*EditCursorClock" style:highest "default_clock_display"
|
||||
widget "*EditPointClock" style:highest "default_clock_display"
|
||||
widget "*PreRollClock" style:highest "default_clock_display"
|
||||
widget "*PostRollClock" style:highest "default_clock_display"
|
||||
widget "*NudgeClock" style:highest "default_clock_display"
|
||||
|
|
|
|||
|
|
@ -1323,7 +1323,7 @@ widget "*AudioClockBBTUpperInfo" style:highest "tempo_meter_clock_display"
|
|||
widget "*AudioClockBBTLowerInfo" style:highest "tempo_meter_clock_display"
|
||||
widget "*SelectionStartClock" style:highest "default_clock_display"
|
||||
widget "*SelectionEndClock" style:highest "default_clock_display"
|
||||
widget "*EditCursorClock" style:highest "default_clock_display"
|
||||
widget "*EditPointClock" style:highest "default_clock_display"
|
||||
widget "*PreRollClock" style:highest "default_clock_display"
|
||||
widget "*PostRollClock" style:highest "default_clock_display"
|
||||
widget "*NudgeClock" style:highest "default_clock_display"
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ Editor::Editor ()
|
|||
|
||||
/* tool bar related */
|
||||
|
||||
edit_cursor_clock (X_("editcursor"), false, X_("EditCursorClock"), true),
|
||||
edit_point_clock (X_("editpoint"), false, X_("EditPointClock"), true),
|
||||
zoom_range_clock (X_("zoomrange"), false, X_("ZoomRangeClock"), true, true),
|
||||
|
||||
toolbar_selection_clock_table (2,3),
|
||||
|
|
@ -376,7 +376,7 @@ Editor::Editor ()
|
|||
build_cursors ();
|
||||
setup_toolbar ();
|
||||
|
||||
edit_cursor_clock.ValueChanged.connect (mem_fun(*this, &Editor::edit_cursor_clock_changed));
|
||||
edit_point_clock.ValueChanged.connect (mem_fun(*this, &Editor::edit_point_clock_changed));
|
||||
|
||||
time_canvas_vbox.pack_start (*_ruler_separator, false, false);
|
||||
time_canvas_vbox.pack_start (*minsec_ruler, false, false);
|
||||
|
|
@ -882,8 +882,20 @@ Editor::instant_save ()
|
|||
}
|
||||
|
||||
void
|
||||
Editor::edit_cursor_clock_changed()
|
||||
Editor::edit_point_clock_changed()
|
||||
{
|
||||
if (selection->markers.empty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool ignored;
|
||||
Location* loc = find_location_from_marker (selection->markers.front(), ignored);
|
||||
|
||||
if (!loc) {
|
||||
return;
|
||||
}
|
||||
|
||||
loc->move_to (edit_point_clock.current_time());
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1135,7 +1147,7 @@ Editor::connect_to_session (Session *t)
|
|||
|
||||
edit_groups_changed ();
|
||||
|
||||
edit_cursor_clock.set_session (session);
|
||||
edit_point_clock.set_session (session);
|
||||
zoom_range_clock.set_session (session);
|
||||
_playlist_selector->set_session (session);
|
||||
nudge_clock.set_session (session);
|
||||
|
|
@ -2688,7 +2700,7 @@ Editor::setup_toolbar ()
|
|||
edit_point_selector.signal_changed().connect (mem_fun(*this, &Editor::edit_point_selection_done));
|
||||
ARDOUR_UI::instance()->tooltips().set_tip (edit_point_selector, _("Edit point"));
|
||||
|
||||
snap_box.pack_start (edit_cursor_clock, false, false);
|
||||
snap_box.pack_start (edit_point_clock, false, false);
|
||||
snap_box.pack_start (snap_mode_selector, false, false);
|
||||
snap_box.pack_start (snap_type_selector, false, false);
|
||||
snap_box.pack_start (edit_point_selector, false, false);
|
||||
|
|
|
|||
|
|
@ -1353,7 +1353,7 @@ class Editor : public PublicEditor
|
|||
|
||||
void editor_mixer_button_toggled ();
|
||||
|
||||
AudioClock edit_cursor_clock;
|
||||
AudioClock edit_point_clock;
|
||||
AudioClock zoom_range_clock;
|
||||
Gtk::Button zoom_in_button;
|
||||
Gtk::Button zoom_out_button;
|
||||
|
|
@ -1417,7 +1417,7 @@ class Editor : public PublicEditor
|
|||
|
||||
void zoom_adjustment_changed();
|
||||
|
||||
void edit_cursor_clock_changed();
|
||||
void edit_point_clock_changed();
|
||||
|
||||
void setup_toolbar ();
|
||||
|
||||
|
|
@ -1926,6 +1926,10 @@ class Editor : public PublicEditor
|
|||
Glib::RefPtr<Gtk::RadioAction> edit_point_action (Editing::EditPoint);
|
||||
std::vector<std::string> edit_point_strings;
|
||||
|
||||
void selected_marker_moved (ARDOUR::Location*);
|
||||
sigc::connection edit_point_clock_connection_a;
|
||||
sigc::connection edit_point_clock_connection_b;
|
||||
|
||||
bool get_edit_op_range (nframes64_t& start, nframes64_t& end) const;
|
||||
|
||||
RegionSelection get_regions_at (nframes64_t where, const TrackSelection& ts) const;
|
||||
|
|
|
|||
|
|
@ -1079,8 +1079,32 @@ Editor::marker_selection_changed ()
|
|||
}
|
||||
}
|
||||
|
||||
edit_point_clock_connection_a.disconnect();
|
||||
edit_point_clock_connection_b.disconnect();
|
||||
|
||||
if (selection->markers.empty()) {
|
||||
edit_point_clock.set (0);
|
||||
return;
|
||||
}
|
||||
|
||||
for (MarkerSelection::iterator x = selection->markers.begin(); x != selection->markers.end(); ++x) {
|
||||
(*x)->add_line (cursor_group, canvas_height);
|
||||
(*x)->show_line ();
|
||||
}
|
||||
|
||||
edit_point_clock.set (selection->markers.front()->position());
|
||||
|
||||
bool ignored;
|
||||
Location* loc = find_location_from_marker (selection->markers.front(), ignored);
|
||||
|
||||
if (loc) {
|
||||
edit_point_clock_connection_a = loc->changed.connect (mem_fun (*this, &Editor::selected_marker_moved));
|
||||
edit_point_clock_connection_b = loc->start_changed.connect (mem_fun (*this, &Editor::selected_marker_moved));
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Editor::selected_marker_moved (Location* loc)
|
||||
{
|
||||
edit_point_clock.set (loc->start());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -327,7 +327,10 @@ Editor::session_going_away ()
|
|||
named_selection_display.set_model (named_selection_model);
|
||||
edit_group_display.set_model (group_model);
|
||||
|
||||
edit_cursor_clock.set_session (0);
|
||||
edit_point_clock_connection_a.disconnect();
|
||||
edit_point_clock_connection_b.disconnect();
|
||||
|
||||
edit_point_clock.set_session (0);
|
||||
zoom_range_clock.set_session (0);
|
||||
nudge_clock.set_session (0);
|
||||
|
||||
|
|
|
|||
|
|
@ -167,8 +167,6 @@ Editor::ruler_button_press (GdkEventButton* ev)
|
|||
if (snap_type != Editing::SnapToEditPoint) {
|
||||
snap_to (where);
|
||||
}
|
||||
// EDIT CURSOR XXX what to do here edit_cursor->set_position (where);
|
||||
// EDIT CURSOR XXX what to do here edit_cursor_clock.set (where);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
@ -210,8 +208,6 @@ Editor::ruler_button_release (GdkEventButton* ev)
|
|||
if (snap_type != Editing::SnapToEditPoint) {
|
||||
snap_to (where);
|
||||
}
|
||||
// EDIT CURSOR XXX what to do here edit_cursor->set_position (where);
|
||||
// ditto XXX edit_cursor_clock.set (where);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
|
|
|||
|
|
@ -1099,9 +1099,15 @@ Editor::get_edit_op_range (nframes64_t& start, nframes64_t& end) const
|
|||
|
||||
switch (_edit_point) {
|
||||
case EditAtPlayhead:
|
||||
/* use mouse + playhead */
|
||||
start = m;
|
||||
end = session->audible_frame();
|
||||
if (selection->markers.empty()) {
|
||||
/* use mouse + playhead */
|
||||
start = m;
|
||||
end = session->audible_frame();
|
||||
} else {
|
||||
/* use playhead + selected marker */
|
||||
start = session->audible_frame();
|
||||
end = selection->markers.front()->position();
|
||||
}
|
||||
break;
|
||||
|
||||
case EditAtMouse:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue