no more per-track varispeed
This commit is contained in:
parent
2a1dccabc9
commit
f9e7ffc601
|
@ -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) {
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue