#endif
#include <stdint.h>
+#include <algorithm>
#include "pbd/memento_command.h"
#include "pbd/basename.h"
RegionView* rv = i->view;
- if (rv->region()->locked()
-#ifdef WITH_VIDEOTIMELINE
- || rv->region()->video_locked()
-#endif
- ) {
+ if (rv->region()->locked() || rv->region()->video_locked()) {
continue;
}
/* insert the regions into their new playlists */
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
- if (i->view->region()->locked()
-#ifdef WITH_VIDEOTIMELINE
- || i->view->region()->video_locked()
-#endif
- ) {
+ if (i->view->region()->locked() || i->view->region()->video_locked()) {
continue;
}
RouteTimeAxisView* const dest_rtv = dynamic_cast<RouteTimeAxisView*> (_time_axis_views[i->time_axis_view]);
double const dest_layer = i->layer;
- if (rv->region()->locked()
-#ifdef WITH_VIDEOTIMELINE
- || rv->region()->video_locked()
-#endif
- ) {
+ if (rv->region()->locked() || rv->region()->video_locked()) {
++i;
continue;
}
}
}
-#ifdef WITH_VIDEOTIMELINE
-
AVDraggingView::AVDraggingView (RegionView* v)
: view (v)
{
{
DEBUG_TRACE (DEBUG::Drags, "New VideoTimeLineDrag\n");
- /* create a list of regions to move along */
-#if 1 /* all reagions -- with video_locked() */
RegionSelection rs;
TrackViewList empty;
empty.clear();
_editor->get_regions_after(rs, (framepos_t) 0, empty);
std::list<RegionView*> views = rs.by_layer();
-#else /* selected regions -- with video_locked() */
- std::list<RegionView*> views = _editor->selection->regions.by_layer();
-#endif
+
for (list<RegionView*>::iterator i = views.begin(); i != views.end(); ++i) {
RegionView* rv = (*i);
if (!rv->region()->video_locked()) {
}
framecnt_t dt = adjusted_current_frame (event) - raw_grab_frame() + _pointer_frame_offset;
- dt = ARDOUR_UI::instance()->video_timeline->quantify_frames_to_apv(dt);
+ dt = ARDOUR_UI::instance()->video_timeline->quantify_frames_to_apv(_startdrag_video_offset+dt) - _startdrag_video_offset;
if (_max_backwards_drag >= 0 && dt <= - _max_backwards_drag) {
dt = - _max_backwards_drag;
}
void
-VideoTimeLineDrag::finished (GdkEvent *event, bool movement_occurred)
+VideoTimeLineDrag::finished (GdkEvent * /*event*/, bool movement_occurred)
{
if (ARDOUR_UI::instance()->video_timeline->is_offset_locked()) {
return;
_editor->session()->add_command (new StatefulDiffCommand (i->view->region()));
}
+ _editor->session()->maybe_update_session_range(
+ std::max(ARDOUR_UI::instance()->video_timeline->get_offset(), (ARDOUR::frameoffset_t) 0),
+ std::max(ARDOUR_UI::instance()->video_timeline->get_offset() + ARDOUR_UI::instance()->video_timeline->get_duration(), (ARDOUR::frameoffset_t) 0)
+ );
+
+
_editor->commit_reversible_command ();
_editor->update_canvas_now ();
}
i->view->region()->set_position(i->initial_position);
}
}
-#endif
TrimDrag::TrimDrag (Editor* e, ArdourCanvas::Item* i, RegionView* p, list<RegionView*> const & v, bool preserve_fade_anchor)
: RegionDrag (e, i, p, v)
Session* s = _editor->session ();
if (s->timecode_transmission_suspended ()) {
framepos_t const f = _editor->playhead_cursor->current_frame;
+ /* This is asynchronous so it will be sent "now"
+ */
s->send_mmc_locate (f);
- s->send_full_time_code (f);
+ /* These are synchronous and will be sent during the next
+ process cycle
+ */
+ s->queue_full_time_code ();
+ s->queue_song_position_pointer ();
}
show_verbose_cursor_time (t);