infrastructure APIs for region/cue marker removal and clear

This commit is contained in:
Paul Davis 2021-05-18 18:46:49 -06:00
parent d8e0a29316
commit 17dbdffc45
4 changed files with 13 additions and 23 deletions

View file

@ -375,8 +375,6 @@ public:
} }
void get_cue_markers (CueMarkers&, bool abs = false) const; void get_cue_markers (CueMarkers&, bool abs = false) const;
void remove_cue_marker (CueMarker&);
void clear_cue_markers ();
protected: protected:
virtual XMLNode& state (); virtual XMLNode& state ();

View file

@ -114,8 +114,8 @@ public:
CueMarkers const & cue_markers() const { return _cue_markers; } CueMarkers const & cue_markers() const { return _cue_markers; }
void add_cue_marker (CueMarker const &); void add_cue_marker (CueMarker const &);
void remove_cue_marker (CueMarker const &); bool remove_cue_marker (CueMarker const &);
void clear_cue_markers (); bool clear_cue_markers ();
PBD::Signal0<void> CueMarkersChanged; PBD::Signal0<void> CueMarkersChanged;
virtual samplepos_t natural_position() const { return _natural_position; } virtual samplepos_t natural_position() const { return _natural_position; }

View file

@ -1937,22 +1937,6 @@ Region::get_cue_markers (CueMarkers& cues, bool abs) const
} }
} }
void
Region::remove_cue_marker (CueMarker& cm)
{
for (SourceList::iterator s = _sources.begin (); s != _sources.end(); ++s) {
(*s)->remove_cue_marker (cm);
}
}
void
Region::clear_cue_markers ()
{
for (SourceList::iterator s = _sources.begin (); s != _sources.end(); ++s) {
(*s)->clear_cue_markers ();
}
}
void void
Region::drop_sources () Region::drop_sources ()
{ {

View file

@ -420,17 +420,25 @@ Source::add_cue_marker (CueMarker const & cm)
CueMarkersChanged(); /* EMIT SIGNAL */ CueMarkersChanged(); /* EMIT SIGNAL */
} }
void bool
Source::remove_cue_marker (CueMarker const & cm) Source::remove_cue_marker (CueMarker const & cm)
{ {
if (_cue_markers.erase (cm)) { if (_cue_markers.erase (cm)) {
CueMarkersChanged(); /* EMIT SIGNAL */ CueMarkersChanged(); /* EMIT SIGNAL */
return true;
} }
return false;
} }
void bool
Source::clear_cue_markers () Source::clear_cue_markers ()
{ {
if (_cue_markers.empty()) {
return false;
}
_cue_markers.clear(); _cue_markers.clear();
CueMarkersChanged(); /* EMIT SIGNAL */ CueMarkersChanged(); /* EMIT SIGNAL */
return true;
} }