summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-11-06 16:05:59 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-11-06 16:05:59 +0000
commitc479985e04122b9cbb887a173517b413e41cc20f (patch)
treec8e95e249dafa53649ca8b36a09c836c6dbdbd85
parente6f2da1a5a9d8426dc5977917d693ddfaf198e51 (diff)
fix wrong map key for sf browser auditioning
git-svn-id: svn://localhost/ardour2/trunk@1074 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/sfdb_ui.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/gtk2_ardour/sfdb_ui.cc b/gtk2_ardour/sfdb_ui.cc
index 6fc758fa35..0f280b7474 100644
--- a/gtk2_ardour/sfdb_ui.cc
+++ b/gtk2_ardour/sfdb_ui.cc
@@ -190,9 +190,11 @@ SoundFileBox::play_btn_clicked ()
return;
}
- static std::map<string, boost::shared_ptr<AudioRegion> > region_cache;
+ typedef std::map<string, boost::shared_ptr<AudioRegion> > RegionCache;
+ static RegionCache region_cache;
+ RegionCache::iterator the_region;
- if (region_cache.find (path) == region_cache.end()) {
+ if ((the_region = region_cache.find (path)) == region_cache.end()) {
SourceList srclist;
boost::shared_ptr<AudioFileSource> afs;
@@ -216,13 +218,18 @@ SoundFileBox::play_btn_clicked ()
_session->region_name (newpair.first, Glib::path_get_basename(srclist[0]->name()), false);
newpair.second = boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (srclist, 0, srclist[0]->length(), newpair.first, 0, Region::DefaultFlags, false));
- region_cache.insert (newpair);
+ pair<RegionCache::iterator,bool> res;
+
+ res = region_cache.insert (newpair);
+ the_region = res.first;
}
play_btn.hide();
stop_btn.show();
- _session->audition_region(region_cache[path]);
+ boost::shared_ptr<Region> r = boost::static_pointer_cast<Region> (the_region->second);
+
+ _session->audition_region(r);
}
void