mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-07 15:25:01 +01:00
move "Normalization Gain" display to the left box & colorize it.
This commit is contained in:
parent
92d8e6622d
commit
3dc6251b7d
1 changed files with 43 additions and 22 deletions
|
|
@ -195,7 +195,7 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
|
|||
int mnw = 0; // max numeric width
|
||||
int anw = 0; // spectrum annotation text width
|
||||
|
||||
int lin[4] = { 0, 0, 0, 0 }; // max line height
|
||||
int lin[6] = { 0, 0, 0, 0, 0, 0 }; // max line height
|
||||
|
||||
TXTSIZE(0, _("(too short integration time)"), get_SmallFont);
|
||||
|
||||
|
|
@ -208,6 +208,8 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
|
|||
TXTSIZE(1, string_compose (_("%1 dBFS"), std::setprecision (1), std::fixed, dbfs), get_LargeFont);
|
||||
TXTSIZE(2, _("True Peak:"), get_SmallFont);
|
||||
TXTSIZE(3, string_compose (_("%1 dBTP"), std::setprecision (1), std::fixed, dbtp), get_LargeFont);
|
||||
TXTSIZE(4, _("Normalization Gain:"), get_SmallFont);
|
||||
TXTSIZE(5, _("+888.88 dB"), get_SmallMonospaceFont);
|
||||
|
||||
TXTSIZE(0, _("Integrated Loudness:"), get_SmallFont);
|
||||
TXTSIZE(1, string_compose (_("%1 LUFS"), std::setprecision (1), std::fixed, p->loudness), get_LargeFont);
|
||||
|
|
@ -215,8 +217,9 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
|
|||
TXTSIZE(3, string_compose (_("%1 LU"), std::setprecision (1), std::fixed, p->loudness_range), get_LargeFont);
|
||||
|
||||
mnw += 8;
|
||||
const int ht = lin[0] * 1.25 + lin[1] * 1.25 + lin[2] * 1.25 + lin[3] + 8;
|
||||
const int hh = std::max (100, ht);
|
||||
const int ht = lin[0] * 1.25 + lin[1] * 1.25 + lin[2] * 1.25 + lin[3] *1.25 + lin[4] * 1.25 + lin[5];
|
||||
const int hh = std::max (100, ht + 12);
|
||||
const int htn = lin[0] * 1.25 + lin[1] * 1.25 + lin[2] * 1.25 + lin[3];
|
||||
int m_l = 2 * mnw + /*hist-width*/ 540 + /*box spacing*/ 8 - /*peak-width*/ 800 - m_r; // margin left
|
||||
|
||||
int mml = 0; // min margin left -- ensure left margin is wide enough
|
||||
|
|
@ -228,10 +231,16 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
|
|||
const int nw2 = mnw / 2; // nums, horizontal center
|
||||
|
||||
int y0[4];
|
||||
y0[0] = (hh - ht) * .5 + lin[0] * .25;
|
||||
if (p->normalized) {
|
||||
y0[0] = (hh - ht) * .5;
|
||||
} else {
|
||||
y0[0] = (hh - htn) * .5;
|
||||
}
|
||||
y0[1] = y0[0] + lin[0] * 1.25;
|
||||
y0[2] = y0[1] + lin[1] * 1.25;
|
||||
y0[3] = y0[2] + lin[2] * 1.25;
|
||||
y0[4] = y0[3] + lin[3] * 1.25;
|
||||
y0[5] = y0[4] + lin[4] * 1.25;
|
||||
|
||||
|
||||
{ /* peak, loudness and R128 histogram */
|
||||
|
|
@ -277,6 +286,35 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
|
|||
layout->show_in_cairo_context (cr);
|
||||
}
|
||||
|
||||
if (p->normalized) {
|
||||
const float ndb = accurate_coefficient_to_dB (p->norm_gain_factor);
|
||||
layout->set_font_description (UIConfiguration::instance ().get_SmallFont ());
|
||||
layout->set_text (_("Normalization Gain:"));
|
||||
layout->get_pixel_size (w, h);
|
||||
cr->move_to (rint (nw2 - w * .5), y0[4]);
|
||||
cr->set_source_rgba (.7, .7, .7, 1.0);
|
||||
layout->show_in_cairo_context (cr);
|
||||
|
||||
layout->set_font_description (UIConfiguration::instance ().get_SmallMonospaceFont ());
|
||||
layout->set_text (string_compose (_("%1 dB"), std::setprecision (2), std::showpos, std::fixed, ndb));
|
||||
|
||||
layout->get_pixel_size (w, h);
|
||||
cr->move_to (rint (nw2 - w * .5), y0[5]);
|
||||
// TODO tweak thresholds
|
||||
if (p->norm_gain_factor < 1.0) {
|
||||
cr->set_source_rgba (1.0, .7, .1, 1.0);
|
||||
} else if (p->norm_gain_factor == 1.0) {
|
||||
cr->set_source_rgba (.7, .7, .7, 1.0);
|
||||
} else if (fabsf (ndb) < 12) {
|
||||
cr->set_source_rgba (.1, 1.0, .1, 1.0);
|
||||
} else if (fabsf (ndb) < 18) {
|
||||
cr->set_source_rgba (1.0, .7, .1, 1.0);
|
||||
} else {
|
||||
cr->set_source_rgba (1.0, .1, .1, 1.0);
|
||||
}
|
||||
layout->show_in_cairo_context (cr);
|
||||
}
|
||||
|
||||
nums->flush ();
|
||||
|
||||
/* EBU R128 numerics */
|
||||
|
|
@ -299,7 +337,7 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
|
|||
layout->set_font_description (UIConfiguration::instance ().get_LargeFont ());
|
||||
layout->set_text (_("Not\nAvailable"));
|
||||
layout->get_pixel_size (w, h);
|
||||
cr->move_to (rint (nw2 - w * .5), rint (hh * .5 - h * .6));
|
||||
cr->move_to (rint (nw2 - w * .5), rint (hh * .5 - h * .66));
|
||||
layout->show_in_cairo_context (cr);
|
||||
int yy = h * .5;
|
||||
|
||||
|
|
@ -413,23 +451,6 @@ ExportReport::ExportReport (Session* session, StatusPtr s)
|
|||
layout->show_in_cairo_context (cr);
|
||||
}
|
||||
|
||||
// add normalization gain factor here (for want of a better place)
|
||||
if (p->normalized) {
|
||||
const float ndb = accurate_coefficient_to_dB (p->norm_gain_factor);
|
||||
layout->set_font_description (UIConfiguration::instance ().get_SmallFont ());
|
||||
layout->set_alignment (Pango::ALIGN_LEFT);
|
||||
layout->set_text (string_compose (_("Normalization Gain: %1 dB"), std::setprecision (2), std::showpos, std::fixed, ndb));
|
||||
layout->get_pixel_size (w, h);
|
||||
cr->set_operator (Cairo::OPERATOR_OVER);
|
||||
layout->get_pixel_size (w, h);
|
||||
Gtkmm2ext::rounded_rectangle (cr, 5, hh - h - 4, w + 2, h + 2, 4);
|
||||
cr->set_source_rgba (.1, .1, .1, 0.7);
|
||||
cr->fill ();
|
||||
cr->set_source_rgba (.3, .7, .3, 1.0);
|
||||
cr->move_to (6, hh - h - 3);
|
||||
layout->show_in_cairo_context (cr);
|
||||
}
|
||||
|
||||
hist->flush ();
|
||||
|
||||
CimgArea *nu = manage (new CimgArea (nums));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue