API infrastructure for dragging region/cue markers
This commit is contained in:
@@ -375,6 +375,7 @@ public:
|
||||
}
|
||||
|
||||
void get_cue_markers (CueMarkers&, bool abs = false) const;
|
||||
void move_cue_marker (CueMarker const &, samplepos_t region_relative_position);
|
||||
|
||||
protected:
|
||||
virtual XMLNode& state ();
|
||||
|
||||
@@ -114,6 +114,7 @@ public:
|
||||
|
||||
CueMarkers const & cue_markers() const { return _cue_markers; }
|
||||
void add_cue_marker (CueMarker const &);
|
||||
void move_cue_marker (CueMarker const &, samplepos_t source_relative_position);
|
||||
bool remove_cue_marker (CueMarker const &);
|
||||
bool clear_cue_markers ();
|
||||
PBD::Signal0<void> CueMarkersChanged;
|
||||
|
||||
@@ -1937,6 +1937,14 @@ Region::get_cue_markers (CueMarkers& cues, bool abs) const
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Region::move_cue_marker (CueMarker const & cm, samplepos_t region_relative_position)
|
||||
{
|
||||
for (SourceList::const_iterator s = _sources.begin (); s != _sources.end(); ++s) {
|
||||
(*s)->move_cue_marker (cm, start() + region_relative_position);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Region::drop_sources ()
|
||||
{
|
||||
|
||||
@@ -420,6 +420,18 @@ Source::add_cue_marker (CueMarker const & cm)
|
||||
CueMarkersChanged(); /* EMIT SIGNAL */
|
||||
}
|
||||
|
||||
void
|
||||
Source::move_cue_marker (CueMarker const & cm, samplepos_t source_relative_position)
|
||||
{
|
||||
if (source_relative_position > length (0)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (remove_cue_marker (cm)) {
|
||||
add_cue_marker (CueMarker (cm.text(), source_relative_position));
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
Source::remove_cue_marker (CueMarker const & cm)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user