libardour: API infrastructure for renaming cue markers

This commit is contained in:
Paul Davis 2021-05-24 20:22:19 -06:00
parent 6277419673
commit 3a1cfc837e
4 changed files with 22 additions and 2 deletions

View File

@ -376,6 +376,7 @@ public:
void get_cue_markers (CueMarkers&, bool abs = false) const;
void move_cue_marker (CueMarker const &, samplepos_t region_relative_position);
void rename_cue_marker (CueMarker&, std::string const &);
protected:
virtual XMLNode& state ();

View File

@ -115,7 +115,8 @@ 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 remove_cue_marker (CueMarker const &);
void rename_cue_marker (CueMarker&, std::string const &);
bool clear_cue_markers ();
PBD::Signal0<void> CueMarkersChanged;

View File

@ -1924,7 +1924,6 @@ Region::captured_xruns (XrunPositions& xruns, bool abs) const
void
Region::get_cue_markers (CueMarkers& cues, bool abs) const
{
bool was_empty = cues.empty ();
for (SourceList::const_iterator s = _sources.begin (); s != _sources.end(); ++s) {
CueMarkers const& x = (*s)->cue_markers ();
for (CueMarkers::const_iterator p = x.begin (); p != x.end (); ++p) {
@ -1945,6 +1944,14 @@ Region::move_cue_marker (CueMarker const & cm, samplepos_t region_relative_posit
}
}
void
Region::rename_cue_marker (CueMarker& cm, std::string const & str)
{
for (SourceList::const_iterator s = _sources.begin (); s != _sources.end(); ++s) {
(*s)->rename_cue_marker (cm, str);
}
}
void
Region::drop_sources ()
{

View File

@ -432,6 +432,17 @@ Source::move_cue_marker (CueMarker const & cm, samplepos_t source_relative_posit
}
}
void
Source::rename_cue_marker (CueMarker& cm, std::string const & str)
{
CueMarkers::iterator m = _cue_markers.find (cm);
if (m != _cue_markers.end()) {
_cue_markers.erase (m);
add_cue_marker (CueMarker (str, cm.position()));
}
}
bool
Source::remove_cue_marker (CueMarker const & cm)
{