split apart mackie meter messages when we have to send two, one to turn on/off the...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 21 May 2012 19:02:44 +0000 (19:02 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 21 May 2012 19:02:44 +0000 (19:02 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12367 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/surfaces/mackie/meter.cc
libs/surfaces/mackie/meter.h
libs/surfaces/mackie/strip.cc

index a4824d3612ce63318719dd776bb709b15cf5685b..82aef2bef8d3f611a24976bdfe55dbbc1f99aece 100644 (file)
@@ -40,8 +40,8 @@ Meter::factory (Surface& surface, int id, const char* name, Group& group)
        return m;
 }
 
-MidiByteArray
-Meter::update_message (float dB)
+void
+Meter::send_update (Surface& surface, float dB)
 {
        float def = 0.0f; /* Meter deflection %age */
 
@@ -75,12 +75,13 @@ Meter::update_message (float dB)
        if (def > 100.0f) {
                if (!overload_on) {
                        overload_on = true;
-                       msg << MidiByteArray (2, 0xd0, (id() << 4) | 0xe);
+                       surface.write (MidiByteArray (2, 0xd0, (id() << 4) | 0xe));
+                       
                }
        } else {
                if (overload_on) {
                        overload_on = false;
-                       msg << MidiByteArray (2, 0xd0, (id() << 4) | 0xf);
+                       surface.write (MidiByteArray (2, 0xd0, (id() << 4) | 0xf));
                }
        }
        
@@ -90,9 +91,12 @@ Meter::update_message (float dB)
        
        if (last_segment_value_sent != segment) {
                last_segment_value_sent = segment;
-               msg << MidiByteArray (2, 0xD0, (id()<<4) | segment);
+               surface.write (MidiByteArray (2, 0xD0, (id()<<4) | segment));
        }
-
-       return msg;
 }
 
+MidiByteArray
+Meter::zero ()
+{
+       return MidiByteArray (2, 0xD0, (id()<<4 | 0));
+}
index 1898bf8199dad2a07624b60b1fff6ea1fbcd1209..b94c7ac98a5254dd969b4d4e05621b8a7d5a37d7 100644 (file)
@@ -35,9 +35,9 @@ public:
                , last_segment_value_sent (-1)
                , overload_on (false) {}
        
-       MidiByteArray update_message (float dB);
+       void send_update (Surface&, float dB);
 
-       MidiByteArray zero() { return update_message (-99999999.0); }
+       MidiByteArray zero();
 
        static Control* factory (Surface&, int id, const char*, Group&);
        
index 9e4c72eab40f6f371f7d917351d8608510e635b0..132d93ed75021eb762faf9cd3232b38bbdf2afae 100644 (file)
@@ -687,7 +687,7 @@ Strip::update_meter ()
 {
        if (_meter) {
                float dB = const_cast<PeakMeter&> (_route->peak_meter()).peak_power (0);
-               _surface->write (_meter->update_message (dB));
+               _meter->send_update (*_surface, dB);
        }
 }