rollback to 3428, before the mysterious removal of libs/* at 3431/3432
[ardour.git] / libs / ardour / meter.cc
index fb8dafbc7b9437e759b010585d5a93b7bc68c1cb..e75c1d89caf5cad0ba0d428ffa9b1b90b643b2ec 100644 (file)
@@ -23,7 +23,6 @@
 #include <ardour/peak.h>
 #include <ardour/dB.h>
 #include <ardour/session.h>
-#include <ardour/midi_events.h>
 
 namespace ARDOUR {
 
@@ -34,24 +33,23 @@ namespace ARDOUR {
  * be set to 0.
  */
 void
-PeakMeter::run (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset)
+PeakMeter::run_in_place (BufferSet& bufs, nframes_t start_frame, nframes_t end_frame, nframes_t nframes, nframes_t offset)
 {
-       size_t meterable = std::min(bufs.count().n_total(), _peak_power.size());
+       size_t meterable = std::min((size_t)bufs.count().n_total(), _peak_power.size());
 
        size_t n = 0;
 
        // Meter what we have (midi)
        for ( ; n < meterable && n < bufs.count().n_midi(); ++n) {
-               
+       
                float val = 0;
                
                // GUI needs a better MIDI meter, not much information can be
                // expressed through peaks alone
-               const unsigned n_events = bufs.get_midi(n).size();
-               for (size_t i=0; i < n_events; ++i) {
-                       const MidiEvent& ev = bufs.get_midi(n)[i];
-                       if ((ev.buffer[0] & 0xF0) == MIDI_CMD_NOTE_ON) {
-                               const float this_vel = log(ev.buffer[2] / 127.0 * (M_E*M_E-M_E) + M_E) - 1.0;
+               for (MidiBuffer::iterator i = bufs.get_midi(n).begin(); i != bufs.get_midi(n).end(); ++i) {
+                       const MIDI::Event& ev = *i;
+                       if (ev.is_note_on()) {
+                               const float this_vel = log(ev.buffer()[2] / 127.0 * (M_E*M_E-M_E) + M_E) - 1.0;
                                //printf("V %d -> %f\n", (int)((Byte)ev.buffer[2]), this_vel);
                                if (this_vel > val)
                                        val = this_vel;