X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_view.cc;h=d94c1fae64591a2fa30ad6c60f1491e63ade07bf;hb=d3404f36848c040820deba3dabaeedb006bd329d;hp=c689a15e7d3c05b7539b5c21084b59f8a073d212;hpb=5031bdcf10bf7dbc8521598f3a60a0285b9abe1b;p=ardour.git diff --git a/gtk2_ardour/region_view.cc b/gtk2_ardour/region_view.cc index c689a15e7d..d94c1fae64 100644 --- a/gtk2_ardour/region_view.cc +++ b/gtk2_ardour/region_view.cc @@ -28,13 +28,13 @@ #include "ardour/profile.h" #include "ardour/session.h" +#include "gtkmm2ext/colors.h" + #include "canvas/polygon.h" #include "canvas/debug.h" #include "canvas/pixbuf.h" #include "canvas/text.h" #include "canvas/line.h" -#include "canvas/utils.h" -#include "canvas/colors.h" #include "streamview.h" #include "region_view.h" @@ -203,7 +203,7 @@ RegionView::~RegionView () delete *i; } - drop_silent_frames (); + drop_silent_frames (); delete editor; } @@ -220,16 +220,16 @@ RegionView::canvas_group_event (GdkEvent* event) void RegionView::set_silent_frames (const AudioIntervalResult& silences, double /*threshold*/) { - framecnt_t shortest = max_framecnt; + framecnt_t shortest = max_framecnt; /* remove old silent frames */ - drop_silent_frames (); + drop_silent_frames (); - if (silences.empty()) { - return; - } + if (silences.empty()) { + return; + } - uint32_t const color = UIConfiguration::instance().color_mod ("silence", "silence"); + uint32_t const color = UIConfiguration::instance().color_mod ("silence", "silence"); for (AudioIntervalResult::const_iterator i = silences.begin(); i != silences.end(); ++i) { @@ -250,7 +250,7 @@ RegionView::set_silent_frames (const AudioIntervalResult& silences, double /*thr } /* Find shortest audible segment */ - framecnt_t shortest_audible = max_framecnt; + framecnt_t shortest_audible = max_framecnt; framecnt_t s = _region->start(); for (AudioIntervalResult::const_iterator i = silences.begin(); i != silences.end(); ++i) { @@ -267,50 +267,50 @@ RegionView::set_silent_frames (const AudioIntervalResult& silences, double /*thr shortest_audible = min (shortest_audible, dur); } - _silence_text = new ArdourCanvas::Text (group); + _silence_text = new ArdourCanvas::Text (group); _silence_text->set_ignore_events (true); - _silence_text->set_font_description (get_font_for_style (N_("SilenceText"))); - _silence_text->set_color (UIConfiguration::instance().color ("silence text")); + _silence_text->set_font_description (get_font_for_style (N_("SilenceText"))); + _silence_text->set_color (UIConfiguration::instance().color ("silence text")); - /* both positions are relative to the region start offset in source */ + /* both positions are relative to the region start offset in source */ - _silence_text->set_x_position (trackview.editor().sample_to_pixel (silences.front().first - _region->start()) + 10.0); - _silence_text->set_y_position (20.0); + _silence_text->set_x_position (trackview.editor().sample_to_pixel (silences.front().first - _region->start()) + 10.0); + _silence_text->set_y_position (20.0); - double ms = (float) shortest/_region->session().frame_rate(); + double ms = (float) shortest/_region->session().frame_rate(); - /* ms are now in seconds */ + /* ms are now in seconds */ - char const * sunits; + 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"); - } + if (ms >= 60.0) { + sunits = _("minutes"); + ms /= 60.0; + } else if (ms < 1.0) { + sunits = _("msecs"); + ms *= 1000.0; + } else { + sunits = _("secs"); + } string text = string_compose (ngettext ("%1 silent segment", "%1 silent segments", silences.size()), silences.size()) + ", " + string_compose (_("shortest = %1 %2"), ms, sunits); - if (shortest_audible != max_framepos) { - /* ms are now in seconds */ - double ma = (float) shortest_audible / _region->session().frame_rate(); - char const * aunits; - - if (ma >= 60.0) { - aunits = _("minutes"); - ma /= 60.0; - } else if (ma < 1.0) { - aunits = _("msecs"); - ma *= 1000.0; - } else { - aunits = _("secs"); - } + if (shortest_audible != max_framepos) { + /* ms are now in seconds */ + double ma = (float) shortest_audible / _region->session().frame_rate(); + char const * aunits; + + if (ma >= 60.0) { + aunits = _("minutes"); + ma /= 60.0; + } else if (ma < 1.0) { + aunits = _("msecs"); + ma *= 1000.0; + } else { + aunits = _("secs"); + } text += string_compose (_("\n (shortest audible segment = %1 %2)"), ma, aunits); } @@ -322,9 +322,9 @@ void RegionView::hide_silent_frames () { for (list::iterator i = _silent_frames.begin (); i != _silent_frames.end (); ++i) { - (*i)->hide (); + (*i)->hide (); } - _silence_text->hide(); + _silence_text->hide(); } void @@ -333,10 +333,10 @@ RegionView::drop_silent_frames () for (list::iterator i = _silent_frames.begin (); i != _silent_frames.end (); ++i) { delete *i; } - _silent_frames.clear (); + _silent_frames.clear (); - delete _silence_text; - _silence_text = 0; + delete _silence_text; + _silence_text = 0; } gint @@ -377,6 +377,9 @@ RegionView::region_changed (const PropertyChange& what_changed) if (what_changed.contains (ARDOUR::Properties::name)) { region_renamed (); } + if (what_changed.contains (ARDOUR::Properties::position_lock_style)) { + region_renamed (); + } if (what_changed.contains (ARDOUR::Properties::sync_position)) { region_sync_changed (); } @@ -512,7 +515,7 @@ void RegionView::set_sync_mark_color () { if (sync_mark) { - ArdourCanvas::Color c = UIConfiguration::instance().color ("sync mark"); + Gtkmm2ext::Color c = UIConfiguration::instance().color ("sync mark"); sync_mark->set_fill_color (c); sync_mark->set_outline_color (c); sync_line->set_outline_color (c); @@ -522,7 +525,7 @@ RegionView::set_sync_mark_color () uint32_t RegionView::get_fill_color () const { - ArdourCanvas::Color f = TimeAxisViewItem::get_fill_color(); + Gtkmm2ext::Color f = TimeAxisViewItem::get_fill_color(); char const *modname; if (_region->opaque() && (!ARDOUR::Profile->get_mixbus() || (!_dragging && !_region->muted ()))) { @@ -531,7 +534,7 @@ RegionView::get_fill_color () const modname = "transparent region base"; } - return HSV(f).mod (UIConfiguration::instance().modifier (modname)).color (); + return Gtkmm2ext::HSV(f).mod (UIConfiguration::instance().modifier (modname)).color (); } void @@ -559,21 +562,22 @@ RegionView::make_name () const std::string str; // XXX nice to have some good icons for this + if (_region->position_lock_style() == MusicTime) { + str += "\u266B"; // BEAMED EIGHTH NOTES + } if (_region->locked()) { - str += '>'; + str += "\u2629"; // CROSS OF JERUSALEM str += _region->name(); - str += '<'; } else if (_region->position_locked()) { - str += '{'; + str += "\u21B9"; // LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR str += _region->name(); - str += '}'; } else if (_region->video_locked()) { str += '['; str += _region->name(); str += ']'; } else { - str = _region->name(); + str += _region->name(); } if (_region->muted()) { @@ -841,18 +845,13 @@ RegionView::trim_front (framepos_t new_bound, bool no_overlap, const int32_t sub return false; } - RouteTimeAxisView& rtv = dynamic_cast (trackview); - double const speed = rtv.track()->speed (); - framepos_t const pre_trim_first_frame = _region->first_frame(); - const framepos_t speed_bound = (framepos_t) (new_bound * speed); - - if (_region->position() == speed_bound) { + if (_region->position() == new_bound) { return false; } - _region->trim_front (speed_bound, sub_num); + _region->trim_front (new_bound, sub_num); if (no_overlap) { // Get the next region on the left of this region and shrink/expand it. @@ -883,12 +882,9 @@ RegionView::trim_end (framepos_t new_bound, bool no_overlap, const int32_t sub_n return false; } - RouteTimeAxisView& rtv = dynamic_cast (trackview); - double const speed = rtv.track()->speed (); - framepos_t const pre_trim_last_frame = _region->last_frame(); - _region->trim_end ((framepos_t) (new_bound * speed), sub_num); + _region->trim_end (new_bound, sub_num); if (no_overlap) { // Get the next region on the right of this region and shrink/expand it.