diff options
-rw-r--r-- | libs/ardour/ardour/playlist.h | 3 | ||||
-rw-r--r-- | libs/ardour/audio_diskstream.cc | 4 | ||||
-rw-r--r-- | libs/ardour/audio_playlist_source.cc | 4 | ||||
-rw-r--r-- | libs/ardour/luabindings.cc | 2 | ||||
-rw-r--r-- | libs/ardour/playlist.cc | 9 |
5 files changed, 15 insertions, 7 deletions
diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index 5eec755a38..cc968e1833 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -164,7 +164,8 @@ public: boost::shared_ptr<Playlist> copy (std::list<AudioRange>&, bool result_is_hidden = true); int paste (boost::shared_ptr<Playlist>, framepos_t position, float times); - const RegionListProperty& region_list () const { return regions; } + const RegionListProperty& region_list_property () const { return regions; } + boost::shared_ptr<RegionList> region_list(); boost::shared_ptr<RegionList> regions_at (framepos_t frame); uint32_t count_regions_at (framepos_t) const; diff --git a/libs/ardour/audio_diskstream.cc b/libs/ardour/audio_diskstream.cc index 64d91b1ea8..cab7f5faf8 100644 --- a/libs/ardour/audio_diskstream.cc +++ b/libs/ardour/audio_diskstream.cc @@ -359,7 +359,7 @@ AudioDiskstream::use_destructive_playlist () boost::shared_ptr<Region> rp; { - const RegionList& rl (_playlist->region_list().rlist()); + const RegionList& rl (_playlist->region_list_property().rlist()); if (rl.size() > 0) { assert((rl.size() == 1)); rp = rl.front(); @@ -2435,7 +2435,7 @@ AudioDiskstream::can_become_destructive (bool& requires_bounce) const boost::shared_ptr<Region> first; { - const RegionList& rl (_playlist->region_list().rlist()); + const RegionList& rl (_playlist->region_list_property().rlist()); assert((rl.size() == 1)); first = rl.front(); diff --git a/libs/ardour/audio_playlist_source.cc b/libs/ardour/audio_playlist_source.cc index 7ac487815c..98df5c1835 100644 --- a/libs/ardour/audio_playlist_source.cc +++ b/libs/ardour/audio_playlist_source.cc @@ -188,7 +188,7 @@ AudioPlaylistSource::n_channels () const return 1; } - boost::shared_ptr<Region> r = _playlist->region_list().front (); + boost::shared_ptr<Region> r = _playlist->region_list_property().front (); boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion> (r); return ar->audio_source()->n_channels (); @@ -203,7 +203,7 @@ AudioPlaylistSource::sample_rate () const _session.frame_rate (); } - boost::shared_ptr<Region> r = _playlist->region_list().front (); + boost::shared_ptr<Region> r = _playlist->region_list_property().front (); boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion> (r); return ar->audio_source()->sample_rate (); diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc index 3c7dd670e0..f9a9b7bc11 100644 --- a/libs/ardour/luabindings.cc +++ b/libs/ardour/luabindings.cc @@ -572,7 +572,7 @@ LuaBindings::common (lua_State* L) .addFunction ("data_type", &Playlist::data_type) .addFunction ("n_regions", &Playlist::n_regions) //.addFunction ("get_extent", &Playlist::get_extent) // pair<framepos_t, framepos_t> - //.addFunction ("region_list", &Playlist::region_list) // RegionListProperty& + .addFunction ("region_list", &Playlist::region_list) .addFunction ("add_region", &Playlist::add_region) .addFunction ("remove_region", &Playlist::remove_region) .addFunction ("regions_at", &Playlist::regions_at) diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc index 2e96dee063..eaee1c4326 100644 --- a/libs/ardour/playlist.cc +++ b/libs/ardour/playlist.cc @@ -1774,6 +1774,13 @@ Playlist::region_bounds_changed (const PropertyChange& what_changed, boost::shar **********************************************************************/ boost::shared_ptr<RegionList> +Playlist::region_list() { + RegionReadLock rlock (this); + boost::shared_ptr<RegionList> rlist (new RegionList (regions.rlist ())); + return rlist; +} + +boost::shared_ptr<RegionList> Playlist::regions_at (framepos_t frame) { RegionReadLock rlock (this); @@ -3132,7 +3139,7 @@ Playlist::uncombine (boost::shared_ptr<Region> target) // (2) get all the original regions - const RegionList& rl (pl->region_list().rlist()); + const RegionList& rl (pl->region_list_property().rlist()); RegionFactory::CompoundAssociations& cassocs (RegionFactory::compound_associations()); frameoffset_t move_offset = 0; |