summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-04-17 11:12:49 +0100
committerPaul Davis <paul@linuxaudiosystems.com>2017-09-18 11:40:53 -0400
commitf9e7ffc601fdec2470f106a963da80d60e6290e6 (patch)
treea57afa2198bd70502da7b9ba978271d2a27b465a
parent2a1dccabc9e66a1c3a6268f40f5bac345a1f89d1 (diff)
no more per-track varispeed
-rw-r--r--gtk2_ardour/editor.cc6
-rw-r--r--gtk2_ardour/editor_drag.cc27
-rw-r--r--gtk2_ardour/editor_mouse.cc13
-rw-r--r--gtk2_ardour/editor_ops.cc75
-rw-r--r--gtk2_ardour/region_view.cc14
-rw-r--r--gtk2_ardour/route_time_axis.cc46
6 files changed, 31 insertions, 150 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 4f4bee4839..1701c38411 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -4853,8 +4853,7 @@ Editor::get_regions_at (RegionSelection& rs, framepos_t where, const TrackViewLi
if ((tr = rtv->track()) && ((pl = tr->playlist()))) {
- boost::shared_ptr<RegionList> regions = pl->regions_at (
- (framepos_t) floor ( (double) where * tr->speed()));
+ boost::shared_ptr<RegionList> regions = pl->regions_at (where);
for (RegionList::iterator i = regions->begin(); i != regions->end(); ++i) {
RegionView* rv = rtv->view()->find_view (*i);
@@ -4886,8 +4885,7 @@ Editor::get_regions_after (RegionSelection& rs, framepos_t where, const TrackVie
if ((tr = rtv->track()) && ((pl = tr->playlist()))) {
- boost::shared_ptr<RegionList> regions = pl->regions_touched (
- (framepos_t) floor ( (double)where * tr->speed()), max_framepos);
+ boost::shared_ptr<RegionList> regions = pl->regions_touched (where, max_framepos);
for (RegionList::iterator i = regions->begin(); i != regions->end(); ++i) {
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index 02f827b579..9b5838aaad 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -1967,13 +1967,7 @@ RegionMoveDrag::RegionMoveDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p,
{
DEBUG_TRACE (DEBUG::Drags, "New RegionMoveDrag\n");
- double speed = 1;
- RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*> (&_primary->get_time_axis_view ());
- if (rtv && rtv->is_track()) {
- speed = rtv->track()->speed ();
- }
-
- _last_position = MusicFrame (static_cast<framepos_t> (_primary->region()->position() / speed), 0);
+ _last_position = MusicFrame (_primary->region()->position(), 0);
}
void
@@ -2878,17 +2872,12 @@ TrimDrag::TrimDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p, list<Region
void
TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor*)
{
- double speed = 1.0;
TimeAxisView* tvp = &_primary->get_time_axis_view ();
RouteTimeAxisView* tv = dynamic_cast<RouteTimeAxisView*>(tvp);
- if (tv && tv->is_track()) {
- speed = tv->track()->speed();
- }
-
- framepos_t const region_start = (framepos_t) (_primary->region()->position() / speed);
- framepos_t const region_end = (framepos_t) (_primary->region()->last_frame() / speed);
- framecnt_t const region_length = (framecnt_t) (_primary->region()->length() / speed);
+ framepos_t const region_start = _primary->region()->position();
+ framepos_t const region_end = _primary->region()->last_frame();
+ framecnt_t const region_length = _primary->region()->length();
framepos_t const pf = adjusted_current_frame (event);
setup_snap_delta (MusicFrame(region_start, 0));
@@ -2945,15 +2934,11 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
{
RegionView* rv = _primary;
- double speed = 1.0;
TimeAxisView* tvp = &_primary->get_time_axis_view ();
RouteTimeAxisView* tv = dynamic_cast<RouteTimeAxisView*>(tvp);
pair<set<boost::shared_ptr<Playlist> >::iterator,bool> insert_result;
frameoffset_t frame_delta = 0;
- if (tv && tv->is_track()) {
- speed = tv->track()->speed();
- }
MusicFrame adj_frame = adjusted_frame (_drags->current_pointer_frame () + snap_delta (event->button.state), event, true);
framecnt_t dt = adj_frame.frame - raw_grab_frame () + _pointer_frame_offset - snap_delta (event->button.state);
@@ -3106,10 +3091,10 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
switch (_operation) {
case StartTrim:
- show_verbose_cursor_time ((framepos_t) (rv->region()->position() / speed));
+ show_verbose_cursor_time (rv->region()->position());
break;
case EndTrim:
- show_verbose_cursor_duration ((framepos_t) rv->region()->position() / speed, (framepos_t) rv->region()->last_frame() / speed);
+ show_verbose_cursor_duration (rv->region()->position(), rv->region()->last_frame());
break;
case ContentsTrim:
// show_verbose_cursor_time (frame_delta);
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index d268192e56..21ace734c2 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -2207,10 +2207,6 @@ Editor::region_view_item_click (AudioRegionView& rv, GdkEventButton* event)
if (Keyboard::modifier_state_contains (event->state, Keyboard::PrimaryModifier)) {
TimeAxisView* tv = &rv.get_time_axis_view();
RouteTimeAxisView* rtv = dynamic_cast<RouteTimeAxisView*>(tv);
- double speed = 1.0;
- if (rtv && rtv->is_track()) {
- speed = rtv->track()->speed();
- }
framepos_t where = get_preferred_edit_position();
@@ -2218,15 +2214,15 @@ Editor::region_view_item_click (AudioRegionView& rv, GdkEventButton* event)
if (Keyboard::modifier_state_equals (event->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::SecondaryModifier))) {
- align_region (rv.region(), SyncPoint, (framepos_t) (where * speed));
+ align_region (rv.region(), SyncPoint, where);
} else if (Keyboard::modifier_state_equals (event->state, Keyboard::ModifierMask (Keyboard::PrimaryModifier|Keyboard::TertiaryModifier))) {
- align_region (rv.region(), End, (framepos_t) (where * speed));
+ align_region (rv.region(), End, where);
} else {
- align_region (rv.region(), Start, (framepos_t) (where * speed));
+ align_region (rv.region(), Start, where);
}
}
}
@@ -2402,11 +2398,10 @@ Editor::mouse_brush_insert_region (RegionView* rv, framepos_t pos)
}
boost::shared_ptr<Playlist> playlist = rtv->playlist();
- double speed = rtv->track()->speed();
playlist->clear_changes ();
boost::shared_ptr<Region> new_region (RegionFactory::create (rv->region(), true));
- playlist->add_region (new_region, (framepos_t) (pos * speed));
+ playlist->add_region (new_region, pos);
_session->add_command (new StatefulDiffCommand (playlist));
// playlist is frozen, so we have to update manually XXX this is disgusting
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 41fe50d6ef..f7bd882260 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -799,17 +799,6 @@ Editor::build_region_boundary_cache ()
break;
}
- float speed = 1.0f;
- RouteTimeAxisView *rtav;
-
- if (ontrack != 0 && (rtav = dynamic_cast<RouteTimeAxisView*>(ontrack)) != 0 ) {
- if (rtav->track() != 0) {
- speed = rtav->track()->speed();
- }
- }
-
- rpos = track_frame_to_session_frame (rpos, speed);
-
if (rpos < lpos) {
lpos = rpos;
}
@@ -847,7 +836,6 @@ Editor::find_next_region (framepos_t frame, RegionPoint point, int32_t dir, Trac
boost::shared_ptr<Region> ret;
framepos_t rpos = 0;
- float track_speed;
framepos_t track_frame;
RouteTimeAxisView *rtav;
@@ -856,13 +844,7 @@ Editor::find_next_region (framepos_t frame, RegionPoint point, int32_t dir, Trac
framecnt_t distance;
boost::shared_ptr<Region> r;
- track_speed = 1.0f;
- if ( (rtav = dynamic_cast<RouteTimeAxisView*>(*i)) != 0 ) {
- if (rtav->track()!=0)
- track_speed = rtav->track()->speed();
- }
-
- track_frame = session_frame_to_track_frame(frame, track_speed);
+ track_frame = frame;
if ((r = (*i)->find_next_region (track_frame, point, dir)) == 0) {
continue;
@@ -882,9 +864,6 @@ Editor::find_next_region (framepos_t frame, RegionPoint point, int32_t dir, Trac
break;
}
- // rpos is a "track frame", converting it to "_session frame"
- rpos = track_frame_to_session_frame(rpos, track_speed);
-
if (rpos > frame) {
distance = rpos - frame;
} else {
@@ -1052,17 +1031,6 @@ Editor::cursor_to_region_point (EditorCursor* cursor, RegionPoint point, int32_t
break;
}
- float speed = 1.0f;
- RouteTimeAxisView *rtav;
-
- if ( ontrack != 0 && (rtav = dynamic_cast<RouteTimeAxisView*>(ontrack)) != 0 ) {
- if (rtav->track() != 0) {
- speed = rtav->track()->speed();
- }
- }
-
- pos = track_frame_to_session_frame(pos, speed);
-
if (cursor == playhead_cursor) {
_session->request_locate (pos);
} else {
@@ -1243,17 +1211,6 @@ Editor::selected_marker_to_region_point (RegionPoint point, int32_t dir)
break;
}
- float speed = 1.0f;
- RouteTimeAxisView *rtav;
-
- if (ontrack != 0 && (rtav = dynamic_cast<RouteTimeAxisView*>(ontrack)) != 0) {
- if (rtav->track() != 0) {
- speed = rtav->track()->speed();
- }
- }
-
- pos = track_frame_to_session_frame(pos, speed);
-
loc->move_to (pos, 0);
}
@@ -3184,8 +3141,6 @@ Editor::separate_regions_between (const TimeSelection& ts)
/* XXX need to consider musical time selections here at some point */
- double speed = rtv->track()->speed();
-
for (list<AudioRange>::const_iterator t = ts.begin(); t != ts.end(); ++t) {
sigc::connection c = rtv->view()->RegionViewAdded.connect (
@@ -3193,8 +3148,7 @@ Editor::separate_regions_between (const TimeSelection& ts)
latest_regionviews.clear ();
- playlist->partition ((framepos_t)((*t).start * speed),
- (framepos_t)((*t).end * speed), false);
+ playlist->partition ((*t).start, (*t).end, false);
c.disconnect ();
@@ -3839,16 +3793,11 @@ Editor::trim_region_to_location (const Location& loc, const char* str)
return;
}
- float speed = 1.0;
framepos_t start;
framepos_t end;
- if (tav->track() != 0) {
- speed = tav->track()->speed();
- }
-
- start = session_frame_to_track_frame (loc.start(), speed);
- end = session_frame_to_track_frame (loc.end(), speed);
+ start = loc.start();
+ end = loc.end();
rv->region()->clear_changes ();
rv->region()->trim_to (start, (end - start));
@@ -3899,13 +3848,6 @@ Editor::trim_to_region(bool forward)
continue;
}
- float speed = 1.0;
-
- if (atav->track() != 0) {
- speed = atav->track()->speed();
- }
-
-
boost::shared_ptr<Region> region = arv->region();
boost::shared_ptr<Playlist> playlist (region->playlist());
@@ -3919,19 +3861,18 @@ Editor::trim_to_region(bool forward)
continue;
}
- region->trim_end((framepos_t) ( (next_region->first_frame() - 1) * speed));
- arv->region_changed (PropertyChange (ARDOUR::Properties::length));
+ region->trim_end (next_region->first_frame() - 1);
+ arv->region_changed (PropertyChange (ARDOUR::Properties::length));
}
else {
next_region = playlist->find_next_region (region->first_frame(), Start, 0);
- if(!next_region){
+ if (!next_region) {
continue;
}
- region->trim_front((framepos_t) ((next_region->last_frame() + 1) * speed));
-
+ region->trim_front (next_region->last_frame() + 1);
arv->region_changed (ARDOUR::bounds_change);
}
diff --git a/gtk2_ardour/region_view.cc b/gtk2_ardour/region_view.cc
index 5d0667be72..d94c1fae64 100644
--- a/gtk2_ardour/region_view.cc
+++ b/gtk2_ardour/region_view.cc
@@ -845,18 +845,13 @@ RegionView::trim_front (framepos_t new_bound, bool no_overlap, const int32_t sub
return false;
}
- RouteTimeAxisView& rtv = dynamic_cast<RouteTimeAxisView&> (trackview);
- double const speed = rtv.track()->speed ();
-
framepos_t const pre_trim_first_frame = _region->first_frame();
- const framepos_t speed_bound = (framepos_t) (new_bound * speed);
-
- if (_region->position() == speed_bound) {
+ if (_region->position() == new_bound) {
return false;
}
- _region->trim_front (speed_bound, sub_num);
+ _region->trim_front (new_bound, sub_num);
if (no_overlap) {
// Get the next region on the left of this region and shrink/expand it.
@@ -887,12 +882,9 @@ RegionView::trim_end (framepos_t new_bound, bool no_overlap, const int32_t sub_n
return false;
}
- RouteTimeAxisView& rtv = dynamic_cast<RouteTimeAxisView&> (trackview);
- double const speed = rtv.track()->speed ();
-
framepos_t const pre_trim_last_frame = _region->last_frame();
- _region->trim_end ((framepos_t) (new_bound * speed), sub_num);
+ _region->trim_end (new_bound, sub_num);
if (no_overlap) {
// Get the next region on the right of this region and shrink/expand it.
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index 47f74489e1..a0208da184 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -1022,17 +1022,11 @@ RouteTimeAxisView::route_color_changed ()
void
RouteTimeAxisView::set_samples_per_pixel (double fpp)
{
- double speed = 1.0;
-
- if (track()) {
- speed = track()->speed();
- }
-
if (_view) {
- _view->set_samples_per_pixel (fpp * speed);
+ _view->set_samples_per_pixel (fpp);
}
- StripableTimeAxisView::set_samples_per_pixel (fpp * speed);
+ StripableTimeAxisView::set_samples_per_pixel (fpp);
}
void
@@ -1300,21 +1294,16 @@ RouteTimeAxisView::set_selected_regionviews (RegionSelection& regions)
void
RouteTimeAxisView::get_selectables (framepos_t start, framepos_t end, double top, double bot, list<Selectable*>& results, bool within)
{
- double speed = 1.0;
-
- if (track() != 0) {
- speed = track()->speed();
- }
-
- framepos_t const start_adjusted = session_frame_to_track_frame(start, speed);
- framepos_t const end_adjusted = session_frame_to_track_frame(end, speed);
-
if ((_view && ((top < 0.0 && bot < 0.0))) || touched (top, bot)) {
- _view->get_selectables (start_adjusted, end_adjusted, top, bot, results, within);
+ _view->get_selectables (start, end, top, bot, results, within);
}
/* pick up visible automation tracks */
- StripableTimeAxisView::get_selectables (start_adjusted, end_adjusted, top, bot, results, within);
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ if (!(*i)->hidden()) {
+ (*i)->get_selectables (start, end, top, bot, results, within);
+ }
+ }
}
void
@@ -1409,13 +1398,6 @@ RouteTimeAxisView::fade_range (TimeSelection& selection)
playlist = tr->playlist();
TimeSelection time (selection);
- float const speed = tr->speed();
- if (speed != 1.0f) {
- for (TimeSelection::iterator i = time.begin(); i != time.end(); ++i) {
- (*i).start = session_frame_to_track_frame((*i).start, speed);
- (*i).end = session_frame_to_track_frame((*i).end, speed);
- }
- }
playlist->clear_changes ();
playlist->clear_owned_changes ();
@@ -1444,13 +1426,6 @@ RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
playlist = tr->playlist();
TimeSelection time (selection.time);
- float const speed = tr->speed();
- if (speed != 1.0f) {
- for (TimeSelection::iterator i = time.begin(); i != time.end(); ++i) {
- (*i).start = session_frame_to_track_frame((*i).start, speed);
- (*i).end = session_frame_to_track_frame((*i).end, speed);
- }
- }
playlist->clear_changes ();
playlist->clear_owned_changes ();
@@ -1527,11 +1502,6 @@ RouteTimeAxisView::paste (framepos_t pos, const Selection& selection, PasteConte
DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("paste to %1\n", pos));
- if (track()->speed() != 1.0f) {
- pos = session_frame_to_track_frame (pos, track()->speed());
- DEBUG_TRACE (DEBUG::CutNPaste, string_compose ("modified paste to %1\n", pos));
- }
-
/* add multi-paste offset if applicable */
std::pair<framepos_t, framepos_t> extent = (*p)->get_extent();
const framecnt_t duration = extent.second - extent.first;