+ cr->property_x1() = trackview.editor().frame_to_pixel (i->first - _region->start());
+ cr->property_x2() = trackview.editor().frame_to_pixel (i->second - _region->start());
+ cr->property_y1() = 1;
+ cr->property_y2() = _height - 2;
+ cr->property_outline_pixels() = 0;
+ cr->property_fill_color_rgba () = color;
+
+ shortest = min (shortest, i->second - i->first);
+ }
+
+ /* Find shortest audible segment */
+ framecnt_t shortest_audible = max_framecnt;
+
+ framecnt_t s = _region->start();
+ for (AudioIntervalResult::const_iterator i = silences.begin(); i != silences.end(); ++i) {
+ framecnt_t const dur = i->first - s;
+ if (dur > 0) {
+ shortest_audible = min (shortest_audible, dur);
+ }
+
+ s = i->second;
+ }
+
+ framecnt_t const dur = _region->start() + _region->length() - 1 - s;
+ if (dur > 0) {
+ shortest_audible = min (shortest_audible, dur);
+ }
+
+ _silence_text = new ArdourCanvas::NoEventText (*group);
+ _silence_text->property_font_desc() = *(get_font_for_style (N_("SilenceText")));
+ _silence_text->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_SilenceText.get();
+ _silence_text->property_anchor() = ANCHOR_NW;
+
+ /* both positions are relative to the region start offset in source */
+
+ _silence_text->property_x() = trackview.editor().frame_to_pixel (silences.front().first - _region->start()) + 10.0;
+ _silence_text->property_y() = 20.0;
+
+ double ms = (float) shortest/_region->session().frame_rate();
+
+ /* ms are now in seconds */
+
+ char const * sunits;
+
+ if (ms >= 60.0) {
+ sunits = _("minutes");
+ ms /= 60.0;
+ } else if (ms < 1.0) {
+ sunits = _("msecs");
+ ms *= 1000.0;
+ } else {
+ sunits = _("secs");
+ }