diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2017-04-17 11:12:49 +0100 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2017-09-18 11:40:53 -0400 |
commit | f9e7ffc601fdec2470f106a963da80d60e6290e6 (patch) | |
tree | a57afa2198bd70502da7b9ba978271d2a27b465a | |
parent | 2a1dccabc9e66a1c3a6268f40f5bac345a1f89d1 (diff) |
no more per-track varispeed
-rw-r--r-- | gtk2_ardour/editor.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 27 | ||||
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 13 | ||||
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 75 | ||||
-rw-r--r-- | gtk2_ardour/region_view.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/route_time_axis.cc | 46 |
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; |