summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2012-05-27 18:22:45 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2012-05-27 18:22:45 +0000
commitbdfd71602f7fb6b19985b457e9cd8e8ae5307ad7 (patch)
treea40ec742445d9d06c52ef7560aefb669dfc4621a
parent20299f71e3fbd91939a5b8332213730733ffbf81 (diff)
add a fix for the one problem case from the last commit: region splitting, where we don't announce regions until the entire edit op is done, but for naming purpoes each new region created needs to be in the map. likely that i will commit a better, cleaner fix for this later
git-svn-id: svn://localhost/ardour2/branches/3.0@12458 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/editor_ops.cc8
-rw-r--r--libs/ardour/ardour/region_factory.h8
2 files changed, 15 insertions, 1 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 7f4c22616e..de24266374 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -5916,6 +5916,10 @@ Editor::split_region_at_points (boost::shared_ptr<Region> r, AnalysisFeatureList
plist.add (ARDOUR::Properties::layer, 0);
boost::shared_ptr<Region> nr = RegionFactory::create (r->sources(), plist, false);
+ /* because we set annouce to false, manually add the new region to the
+ RegionFactory map
+ */
+ RegionFactory::map_add (nr);
pl->add_region (nr, r->position() + pos);
@@ -5940,6 +5944,10 @@ Editor::split_region_at_points (boost::shared_ptr<Region> r, AnalysisFeatureList
plist.add (ARDOUR::Properties::layer, 0);
boost::shared_ptr<Region> nr = RegionFactory::create (r->sources(), plist, false);
+ /* because we set annouce to false, manually add the new region to the
+ RegionFactory map
+ */
+ RegionFactory::map_add (nr);
pl->add_region (nr, r->position() + pos);
if (select_new) {
diff --git a/libs/ardour/ardour/region_factory.h b/libs/ardour/ardour/region_factory.h
index 80584e6859..4ba261f80c 100644
--- a/libs/ardour/ardour/region_factory.h
+++ b/libs/ardour/ardour/region_factory.h
@@ -111,6 +111,13 @@ public:
static void add_compound_association (boost::shared_ptr<Region>, boost::shared_ptr<Region>);
+ /* exposed because there may be cases where regions are created with
+ * announce=false but they still need to be in the map soon after
+ * creation.
+ */
+
+ static void map_add (boost::shared_ptr<Region>);
+
private:
static void region_changed (PBD::PropertyChange const &, boost::weak_ptr<Region>);
@@ -118,7 +125,6 @@ public:
static Glib::StaticMutex region_map_lock;
static RegionMap region_map;
- static void map_add (boost::shared_ptr<Region>);
static Glib::StaticMutex region_name_map_lock;