+ c[0] = ARDOUR_UI::config()->canvasvar_MeterColor0.get();
+ c[1] = ARDOUR_UI::config()->canvasvar_MeterColor1.get();
+ c[2] = ARDOUR_UI::config()->canvasvar_MeterColor2.get();
+ c[3] = ARDOUR_UI::config()->canvasvar_MeterColor3.get();
+ c[4] = ARDOUR_UI::config()->canvasvar_MeterColor4.get();
+ c[5] = ARDOUR_UI::config()->canvasvar_MeterColor5.get();
+ c[6] = ARDOUR_UI::config()->canvasvar_MeterColor6.get();
+ c[7] = ARDOUR_UI::config()->canvasvar_MeterColor7.get();
+ c[8] = ARDOUR_UI::config()->canvasvar_MeterColor8.get();
+ c[9] = ARDOUR_UI::config()->canvasvar_MeterColor9.get();
+
+ switch (meter_type) {
+ case MeterK20:
+ stp[0] = 115.0 * meter_deflect_k(-40, 20); //-20
+ stp[1] = 115.0 * meter_deflect_k(-20, 20); // 0
+ stp[2] = 115.0 * meter_deflect_k(-18, 20); // +2
+ stp[3] = 115.0 * meter_deflect_k(-16, 20); // +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 MeterK14:
+ stp[0] = 115.0 * meter_deflect_k(-34, 14); //-20
+ stp[1] = 115.0 * meter_deflect_k(-14, 14); // 0
+ stp[2] = 115.0 * meter_deflect_k(-12, 14); // +2
+ stp[3] = 115.0 * meter_deflect_k(-10, 14); // +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");
+ stp[0] = stp[1] = stp[2] = stp[3] = 115.0;
+ break;
+ case MeterIEC2EBU:
+ stp[0] = 115.0 * meter_deflect_ppm(-24); // ignored
+ stp[1] = 115.0 * meter_deflect_ppm(-18);
+ stp[2] = 115.0 * meter_deflect_ppm( -9);
+ stp[3] = 115.0 * meter_deflect_ppm( 0); // ignored
+ c[3] = c[2] = c[1];
+ c[6] = c[7] = c[8] = c[9];
+ break;
+ case MeterIEC1NOR:
+ stp[0] = 115.0 * meter_deflect_nordic(-30); // ignored
+ stp[1] = 115.0 * meter_deflect_nordic(-18);
+ stp[2] = 115.0 * meter_deflect_nordic(-12);
+ stp[3] = 115.0 * meter_deflect_nordic( -9); // ignored
+ //c[2] = c[3] = c[1]; // dark-green
+ c[0] = c[1] = c[2]; // bright-green
+ c[6] = c[7] = c[8] = c[9];
+ break;
+ case MeterIEC1DIN:
+ stp[0] = 115.0 * meter_deflect_din(-29); // ignored
+ stp[1] = 115.0 * meter_deflect_din(-18);
+ stp[2] = 115.0 * meter_deflect_din(-15); // ignored
+ stp[3] = 115.0 * meter_deflect_din( -9);
+ c[0] = c[1] = c[2] = c[3] = 0x00aa00ff;
+ c[4] = c[6];
+ c[5] = c[7];
+ break;
+ case MeterVU:
+ stp[0] = 115.0 * meter_deflect_vu(-26); // -6
+ stp[1] = 115.0 * meter_deflect_vu(-23); // -3
+ stp[2] = 115.0 * meter_deflect_vu(-20); // 0
+ stp[3] = 115.0 * meter_deflect_vu(-18); // +2
+ c[0] = c[1] = c[2] = c[3] = c[4] = c[5] = 0x00aa00ff;
+ c[6] = c[7] = c[8] = c[9] = 0xff8800ff;
+ break;
+ default: // PEAK, RMS
+ stp[1] = 77.5; // 115 * log_meter(-10)
+ stp[2] = 92.5; // 115 * log_meter(-3)
+ stp[3] = 100.0; // 115 * log_meter(0)
+ switch (Config->get_meter_line_up_level()) {
+ case MeteringLineUp24:
+ stp[0] = 42.0;
+ break;
+ case MeteringLineUp20:
+ stp[0] = 50.0;
+ break;
+ default:
+ case MeteringLineUp18:
+ stp[0] = 55.0;
+ break;
+ case MeteringLineUp15:
+ stp[0] = 62.5;
+ break;
+ }
+ }