diff --git a/libs/ardour/ardour/source.h b/libs/ardour/ardour/source.h index 919ac10913..224a259b8f 100644 --- a/libs/ardour/ardour/source.h +++ b/libs/ardour/ardour/source.h @@ -113,6 +113,9 @@ public: void set_captured_xruns (XrunPositions const& xruns) { _xruns = xruns; } CueMarkers const & cue_markers() const { return _cue_markers; } + void add_cue_marker (CueMarker const &); + void remove_cue_marker (CueMarker const &); + PBD::Signal0 CueMarkersChanged; virtual samplepos_t natural_position() const { return _natural_position; } virtual void set_natural_position (samplepos_t pos); diff --git a/libs/ardour/source.cc b/libs/ardour/source.cc index 1fd8595b70..f8f43d60e5 100644 --- a/libs/ardour/source.cc +++ b/libs/ardour/source.cc @@ -380,3 +380,19 @@ Source::writable () const { return (_flags & Writable) && _session.writable(); } + +void +Source::add_cue_marker (CueMarker const & cm) +{ + _cue_markers.insert (cm); + CueMarkersChanged(); /* EMIT SIGNAL */ +} + +void +Source::remove_cue_marker (CueMarker const & cm) +{ + if (_cue_markers.erase (cm)) { + CueMarkersChanged(); /* EMIT SIGNAL */ + } +} +