merge fix for tempo branch
[ardour.git] / libs / ardour / tempo.cc
index 521b91147d50974b3ecb2d55e913c2b12ea495cc..c5f7272b7e3c0576a12c7d8ac5efebbf3e7a4cbe 100644 (file)
@@ -1620,6 +1620,33 @@ TempoMap::tempo_at (framepos_t frame) const
        return m.tempo();
 }
 
+const MeterSection&
+TempoMap::meter_section_at (framepos_t frame) const
+{
+       Glib::Threads::RWLock::ReaderLock lm (lock);
+       Metrics::const_iterator i;
+       MeterSection* prev = 0;
+
+       for (i = metrics.begin(); i != metrics.end(); ++i) {
+               MeterSection* t;
+
+               if ((t = dynamic_cast<MeterSection*> (*i)) != 0) {
+
+                       if ((*i)->frame() > frame) {
+                               break;
+                       }
+
+                       prev = t;
+               }
+       }
+
+       if (prev == 0) {
+               fatal << endmsg;
+               abort(); /*NOTREACHED*/
+       }
+
+       return *prev;
+}
 
 const Meter&
 TempoMap::meter_at (framepos_t frame) const