PBD::PropertyDescriptor<bool> muted;
PBD::PropertyDescriptor<bool> opaque;
PBD::PropertyDescriptor<bool> locked;
-#ifdef WITH_VIDEOTIMELINE
PBD::PropertyDescriptor<bool> video_locked;
-#endif
PBD::PropertyDescriptor<bool> automatic;
PBD::PropertyDescriptor<bool> whole_file;
PBD::PropertyDescriptor<bool> import;
DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for opaque = %1\n", Properties::opaque.property_id));
Properties::locked.property_id = g_quark_from_static_string (X_("locked"));
DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for locked = %1\n", Properties::locked.property_id));
-#ifdef WITH_VIDEOTIMELINE
Properties::video_locked.property_id = g_quark_from_static_string (X_("video-locked"));
DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for video-locked = %1\n", Properties::video_locked.property_id));
-#endif
Properties::automatic.property_id = g_quark_from_static_string (X_("automatic"));
DEBUG_TRACE (DEBUG::Properties, string_compose ("quark for automatic = %1\n", Properties::automatic.property_id));
Properties::whole_file.property_id = g_quark_from_static_string (X_("whole-file"));
add_property (_muted);
add_property (_opaque);
add_property (_locked);
-#ifdef WITH_VIDEOTIMELINE
add_property (_video_locked);
-#endif
add_property (_automatic);
add_property (_whole_file);
add_property (_import);
add_property (_position_lock_style);
add_property (_layering_index);
}
-#ifdef WITH_VIDEOTIMELINE
-#define VTLSTATE , _video_locked (Properties::video_locked, false)
-#define VTLCSTATE , _video_locked (Properties::video_locked, other->_video_locked)
-#else
-#define VTLSTATE
-#define VTLCSTATE
-#endif
#define REGION_DEFAULT_STATE(s,l) \
_sync_marked (Properties::sync_marked, false) \
, _muted (Properties::muted, false) \
, _opaque (Properties::opaque, true) \
, _locked (Properties::locked, false) \
- VTLSTATE \
+ , _video_locked (Properties::video_locked, false) \
, _automatic (Properties::automatic, false) \
, _whole_file (Properties::whole_file, false) \
, _import (Properties::import, false) \
, _muted (Properties::muted, other->_muted) \
, _opaque (Properties::opaque, other->_opaque) \
, _locked (Properties::locked, other->_locked) \
- VTLCSTATE \
+ , _video_locked (Properties::video_locked, other->_video_locked) \
, _automatic (Properties::automatic, other->_automatic) \
, _whole_file (Properties::whole_file, other->_whole_file) \
, _import (Properties::import, other->_import) \
void
Region::nudge_position (frameoffset_t n)
{
- if (locked()
-#ifdef WITH_VIDEOTIMELINE
- || video_locked()
-#endif
- ) {
+ if (locked() || video_locked()) {
return;
}
void
Region::set_start (framepos_t pos)
{
- if (locked() || position_locked()
-#ifdef WITH_VIDEOTIMELINE
- || video_locked()
-#endif
- ) {
+ if (locked() || position_locked() || video_locked()) {
return;
}
/* This just sets the start, nothing else. It effectively shifts
}
void
-Region::trim_start (framepos_t new_position)
+Region::move_start (frameoffset_t distance)
{
- if (locked() || position_locked()
-#ifdef WITH_VIDEOTIMELINE
- || video_locked()
-#endif
- ) {
+ if (locked() || position_locked() || video_locked()) {
return;
}
framepos_t new_start;
- frameoffset_t const start_shift = new_position - _position;
- if (start_shift > 0) {
+ if (distance > 0) {
- if (_start > max_framepos - start_shift) {
- new_start = max_framepos;
+ if (_start > max_framepos - distance) {
+ new_start = max_framepos; // makes no sense
} else {
- new_start = _start + start_shift;
+ new_start = _start + distance;
}
if (!verify_start (new_start)) {
return;
}
- } else if (start_shift < 0) {
+ } else if (distance < 0) {
- if (_start < -start_shift) {
+ if (_start < -distance) {
new_start = 0;
} else {
- new_start = _start + start_shift;
+ new_start = _start + distance;
}
} else {
}
set_start_internal (new_start);
+
_whole_file = false;
first_edit ();
}
}
-#ifdef WITH_VIDEOTIMELINE
void
Region::set_video_locked (bool yn)
{
send_change (Properties::video_locked);
}
}
-#endif
void
Region::set_position_locked (bool yn)
}
}
+ for (SourceList::const_iterator i = _master_sources.begin(); i != _master_sources.end(); ++i) {
+ if (*i == source) {
+ return true;
+ }
+
+ boost::shared_ptr<PlaylistSource> ps = boost::dynamic_pointer_cast<PlaylistSource> (*i);
+
+ if (ps) {
+ if (ps->playlist()->uses_source (source)) {
+ return true;
+ }
+ }
+ }
+
return false;
}