+
+ switch (type) {
+ case MeterK12:
+ points.insert (std::pair<float,float>(-52.0f, 1.0));
+ points.insert (std::pair<float,float>(-42.0f, 1.0));
+ points.insert (std::pair<float,float>(-32.0f, 1.0));
+ points.insert (std::pair<float,float>(-22.0f, 1.0));
+ points.insert (std::pair<float,float>(-18.0f, 1.0));
+ points.insert (std::pair<float,float>(-15.0f, 1.0));
+ points.insert (std::pair<float,float>(-12.0f, 1.0));
+ points.insert (std::pair<float,float>( -9.0f, 1.0));
+ points.insert (std::pair<float,float>( -8.0f, 0.8));
+ points.insert (std::pair<float,float>( -6.0f, 1.0));
+ points.insert (std::pair<float,float>( -3.0f, 1.0));
+ points.insert (std::pair<float,float>( 0.0f, 1.0));
+ break;
+ case MeterK14:
+ points.insert (std::pair<float,float>(-54.0f, 1.0));
+ points.insert (std::pair<float,float>(-44.0f, 1.0));
+ points.insert (std::pair<float,float>(-34.0f, 1.0));
+ points.insert (std::pair<float,float>(-24.0f, 1.0));
+ points.insert (std::pair<float,float>(-20.0f, 1.0));
+ points.insert (std::pair<float,float>(-17.0f, 1.0));
+ points.insert (std::pair<float,float>(-14.0f, 1.0)); // 0
+ points.insert (std::pair<float,float>(-11.0f, 1.0)); // +3
+ points.insert (std::pair<float,float>(-10.0f, 0.8)); // +4
+ points.insert (std::pair<float,float>( -8.0f, 1.0)); // +6
+ points.insert (std::pair<float,float>( -4.0f, 1.0)); // +10
+ points.insert (std::pair<float,float>( 0.0f, 1.0));
+ break;
+ case MeterK20:
+ points.insert (std::pair<float,float>(-60.0f, 1.0));
+ points.insert (std::pair<float,float>(-50.0f, 1.0));
+ points.insert (std::pair<float,float>(-40.0f, 1.0));
+ points.insert (std::pair<float,float>(-30.0f, 1.0));
+ points.insert (std::pair<float,float>(-26.0f, 1.0));
+ points.insert (std::pair<float,float>(-23.0f, 1.0));
+ points.insert (std::pair<float,float>(-20.0f, 1.0)); // 0
+ points.insert (std::pair<float,float>(-17.0f, 1.0));
+ points.insert (std::pair<float,float>(-16.0f, 0.8));
+ points.insert (std::pair<float,float>(-14.0f, 1.0)); // +6
+ points.insert (std::pair<float,float>(-10.0f, 1.0));
+ points.insert (std::pair<float,float>( -5.0f, 1.0));
+ points.insert (std::pair<float,float>( 0.0f, 1.0)); //+20
+ break;
+ case MeterIEC2EBU:
+ points.insert (std::pair<float,float>(-30.0f, 1.0));
+ points.insert (std::pair<float,float>(-28.0f, 0.5));
+ points.insert (std::pair<float,float>(-26.0f, 1.0));
+ points.insert (std::pair<float,float>(-24.0f, 0.5));
+ points.insert (std::pair<float,float>(-22.0f, 1.0));
+ points.insert (std::pair<float,float>(-20.0f, 0.5));
+ points.insert (std::pair<float,float>(-18.0f, 1.0));
+ points.insert (std::pair<float,float>(-16.0f, 0.5));
+ points.insert (std::pair<float,float>(-14.0f, 1.0));
+ points.insert (std::pair<float,float>(-12.0f, 0.5));
+ points.insert (std::pair<float,float>(-10.0f, 1.0));
+ points.insert (std::pair<float,float>( -9.0f, 0.8));
+ points.insert (std::pair<float,float>( -8.0f, 0.5));
+ points.insert (std::pair<float,float>( -6.0f, 1.0));
+ break;
+ case MeterIEC2BBC:
+ points.insert (std::pair<float,float>(-30.0f, 1.0));
+ points.insert (std::pair<float,float>(-26.0f, 1.0));
+ points.insert (std::pair<float,float>(-22.0f, 1.0));
+ points.insert (std::pair<float,float>(-18.0f, 1.0));
+ points.insert (std::pair<float,float>(-14.0f, 1.0));
+ points.insert (std::pair<float,float>(-10.0f, 1.0));
+ points.insert (std::pair<float,float>( -6.0f, 1.0));
+ break;
+ case MeterIEC1NOR:
+ points.insert (std::pair<float,float>(-60.0f, 1.0)); // -42
+ points.insert (std::pair<float,float>(-57.0f, 0.5));
+ points.insert (std::pair<float,float>(-54.0f, 1.0));
+ points.insert (std::pair<float,float>(-51.0f, 0.5));
+ points.insert (std::pair<float,float>(-48.0f, 1.0));
+ points.insert (std::pair<float,float>(-45.0f, 0.5));
+ points.insert (std::pair<float,float>(-42.0f, 1.0));
+ points.insert (std::pair<float,float>(-39.0f, 0.5));
+ points.insert (std::pair<float,float>(-36.0f, 1.0));
+
+ points.insert (std::pair<float,float>(-33.0f, 0.5));
+ points.insert (std::pair<float,float>(-30.0f, 1.0));
+ points.insert (std::pair<float,float>(-27.0f, 0.5));
+ points.insert (std::pair<float,float>(-24.0f, 1.0));
+ points.insert (std::pair<float,float>(-21.0f, 0.5));
+
+ points.insert (std::pair<float,float>(-18.0f, 1.0));
+ points.insert (std::pair<float,float>(-15.0f, 0.5));
+ points.insert (std::pair<float,float>(-12.0f, 1.0));
+ points.insert (std::pair<float,float>( -9.0f, 1.0));
+ points.insert (std::pair<float,float>( -6.0f, 0.5));
+ mtr_red_stripe(cr, box_l, box_w, height,
+ meter_deflect_nordic(-6.0f), meter_deflect_nordic(-12.0f));
+ break;
+ case MeterIEC1DIN:
+ points.insert (std::pair<float,float>( -3.0f, 0.5)); // "200%"
+ points.insert (std::pair<float,float>( -4.0f, 1.0));
+ points.insert (std::pair<float,float>( -5.0f, 0.5));
+ points.insert (std::pair<float,float>( -6.0f, 0.5));
+ points.insert (std::pair<float,float>( -7.0f, 0.5));
+ points.insert (std::pair<float,float>( -8.0f, 0.5));
+ points.insert (std::pair<float,float>( -9.0f, 1.0)); // "100%"
+ points.insert (std::pair<float,float>(-10.0f, 0.5));
+ points.insert (std::pair<float,float>(-11.0f, 0.5));
+ points.insert (std::pair<float,float>(-12.0f, 0.5));
+ points.insert (std::pair<float,float>(-13.0f, 0.5));
+ points.insert (std::pair<float,float>(-14.0f, 1.0));
+ points.insert (std::pair<float,float>(-15.0f, 0.8)); // "50%"
+ points.insert (std::pair<float,float>(-18.0f, 0.8)); // "-9"
+ points.insert (std::pair<float,float>(-19.0f, 1.0));
+ points.insert (std::pair<float,float>(-24.0f, 0.5));
+ points.insert (std::pair<float,float>(-29.0f, 1.0)); // "-20", "10%"
+ points.insert (std::pair<float,float>(-34.0f, 0.5)); // -25
+ //points.insert (std::pair<float,float>(-35.0f, 0.5)); // "5%" " -20"
+ points.insert (std::pair<float,float>(-39.0f, 1.0));
+ points.insert (std::pair<float,float>(-49.0f, 1.0));
+ points.insert (std::pair<float,float>(-54.0f, 0.5));
+ points.insert (std::pair<float,float>(-59.0f, 1.0));
+ mtr_red_stripe(cr, box_l, box_w, height,
+ meter_deflect_din(0.0f), meter_deflect_din(-9.0f));
+ break;
+ case MeterVU:
+ points.insert (std::pair<float,float>(-17.0f, 1.0)); //+3 VU
+ points.insert (std::pair<float,float>(-18.0f, 1.0));
+ points.insert (std::pair<float,float>(-19.0f, 1.0));
+ points.insert (std::pair<float,float>(-19.5f, 0.5));
+ points.insert (std::pair<float,float>(-20.0f, 1.0)); // 0 VU
+ points.insert (std::pair<float,float>(-20.5f, 0.5));
+ points.insert (std::pair<float,float>(-21.0f, 1.0));
+ points.insert (std::pair<float,float>(-22.0f, 1.0));
+ points.insert (std::pair<float,float>(-23.0f, 1.0)); //-3 VU
+ points.insert (std::pair<float,float>(-24.0f, 0.5));
+ points.insert (std::pair<float,float>(-25.0f, 1.0));
+ points.insert (std::pair<float,float>(-26.0f, 0.5));
+ points.insert (std::pair<float,float>(-27.0f, 1.0)); //-7 VU
+ points.insert (std::pair<float,float>(-30.0f, 1.0));
+ points.insert (std::pair<float,float>(-35.0f, 0.5));
+ points.insert (std::pair<float,float>(-40.0f, 1.0));
+ mtr_red_stripe(cr, box_l, box_w, height,
+ meter_deflect_vu(-17.0f), meter_deflect_vu(-20.0f));
+ break;
+
+ default:
+ points.insert (std::pair<float,float>( 0, 1.0));
+ points.insert (std::pair<float,float>( 1, 0.5));
+ points.insert (std::pair<float,float>( 2, 0.5));
+ points.insert (std::pair<float,float>( 3, 1.0));
+ points.insert (std::pair<float,float>( 4, 0.5));
+ points.insert (std::pair<float,float>( 5, 0.5));
+ // no break
+ case MeterPeak0dB:
+ points.insert (std::pair<float,float>(-60, 0.5));
+ points.insert (std::pair<float,float>(-50, 1.0));
+ points.insert (std::pair<float,float>(-40, 1.0));
+ points.insert (std::pair<float,float>(-30, 1.0));
+ if (UIConfiguration::instance().get_meter_line_up_level() == MeteringLineUp24) {
+ points.insert (std::pair<float,float>(-24, 1.0));
+ } else {
+ points.insert (std::pair<float,float>(-25, 1.0));
+ }
+ points.insert (std::pair<float,float>(-20, 1.0));
+
+ points.insert (std::pair<float,float>(-19, 0.5));
+ points.insert (std::pair<float,float>(-18, 1.0));
+ points.insert (std::pair<float,float>(-17, 0.5));
+ points.insert (std::pair<float,float>(-16, 0.5));
+ points.insert (std::pair<float,float>(-15, 1.0));
+
+ points.insert (std::pair<float,float>(-14, 0.5));
+ points.insert (std::pair<float,float>(-13, 0.5));
+ points.insert (std::pair<float,float>(-12, 0.5));
+ points.insert (std::pair<float,float>(-11, 0.5));
+ points.insert (std::pair<float,float>(-10, 1.0));
+
+ points.insert (std::pair<float,float>( -9, 1.0));
+ points.insert (std::pair<float,float>( -8, 0.5));
+ points.insert (std::pair<float,float>( -7, 0.5));
+ points.insert (std::pair<float,float>( -6, 0.5));
+ points.insert (std::pair<float,float>( -5, 1.0));
+ points.insert (std::pair<float,float>( -4, 0.5));
+ points.insert (std::pair<float,float>( -3, 1.0));
+ points.insert (std::pair<float,float>( -2, 0.5));
+ points.insert (std::pair<float,float>( -1, 0.5));
+ break;