prepare GUI notifications for plugin scan
[ardour.git] / gtk2_ardour / level_meter.cc
index 194e4461154748a316bf44d9fa19f0a921960e70..94b8d63d7f3290f7cf6c622815d684ac614209c0 100644 (file)
@@ -78,6 +78,7 @@ LevelMeterBase::set_meter (PeakMeter* meter)
        _meter_type_connection.disconnect();
 
        _meter = meter;
+       color_changed = true;
 
        if (_meter) {
                _meter->ConfigurationChanged.connect (_configuration_connection, parent_invalidator, boost::bind (&LevelMeterBase::configuration_changed, this, _1, _2), gui_context());
@@ -157,6 +158,8 @@ LevelMeterBase::update_meters ()
                                        (*i).meter->set (meter_deflect_ppm (peak + meter_lineup(0)));
                                } else if (meter_type == MeterVU) {
                                        (*i).meter->set (meter_deflect_vu (peak + vu_standard() + meter_lineup(0)));
+                               } else if (meter_type == MeterK12) {
+                                       (*i).meter->set (meter_deflect_k (peak, 12), meter_deflect_k(_meter->meter_level(n, MeterPeak), 12));
                                } else if (meter_type == MeterK14) {
                                        (*i).meter->set (meter_deflect_k (peak, 14), meter_deflect_k(_meter->meter_level(n, MeterPeak), 14));
                                } else if (meter_type == MeterK20) {
@@ -320,6 +323,17 @@ LevelMeterBase::setup_meters (int len, int initial_width, int thin_width)
                                        c[6] = c[7] = 0xffff00ff;
                                        c[8] = c[9] = 0xff0000ff;
                                        break;
+                               case MeterK12:
+                                       stp[0] = 115.0 * meter_deflect_k(-32, 12);  //-20
+                                       stp[1] = 115.0 * meter_deflect_k(-12, 12);  //  0
+                                       stp[2] = 115.0 * meter_deflect_k(-10, 12);  // +2
+                                       stp[3] = 115.0 * meter_deflect_k( -8, 12);  // +4
+                                       c[0] = c[1] = 0x008800ff;
+                                       c[2] = c[3] = 0x00ff00ff;
+                                       c[4] = c[5] = 0xffff00ff;
+                                       c[6] = c[7] = 0xffff00ff;
+                                       c[8] = c[9] = 0xff0000ff;
+                                       break;
                                case MeterIEC2BBC:
                                        c[0] = c[1] = c[2] = c[3] = c[4] = c[5] = c[6] = c[7] = c[8] = c[9] =
                                                ARDOUR_UI::config()->color_by_name ("meter color BBC");