X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Froute_time_axis.cc;h=715eec53b4bc219234958a4df6bef520b91b8dca;hb=4aaae2eb3ba65f97e173b1751e1ee3bec8925ed5;hp=a8abb3cc0369e13eca4c10263b99753f032c4d6f;hpb=92494b89655fabc2e886ac18376cc8a775d2e87f;p=ardour.git diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index a8abb3cc03..715eec53b4 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -50,15 +50,17 @@ #include "ardour/route_group.h" #include "ardour/session.h" #include "ardour/session_playlists.h" + #include "evoral/Parameter.hpp" +#include "canvas/debug.h" + #include "ardour_ui.h" #include "ardour_button.h" #include "debug.h" #include "global_signals.h" #include "route_time_axis.h" #include "automation_time_axis.h" -#include "canvas_impl.h" #include "enums.h" #include "gui_thread.h" #include "keyboard.h" @@ -69,7 +71,6 @@ #include "region_view.h" #include "rgb_macros.h" #include "selection.h" -#include "simplerect.h" #include "streamview.h" #include "utils.h" #include "route_group_menu.h" @@ -86,7 +87,7 @@ using namespace Editing; using namespace std; using std::list; -RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, Canvas& canvas) +RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, ArdourCanvas::Canvas& canvas) : AxisView(sess) , RouteUI(sess) , TimeAxisView(sess,ed,(TimeAxisView*) 0, canvas) @@ -113,6 +114,10 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) { RouteUI::set_route (rt); + CANVAS_DEBUG_NAME (_canvas_display, string_compose ("main for %1", rt->name())); + CANVAS_DEBUG_NAME (selection_group, string_compose ("selections for %1", rt->name())); + CANVAS_DEBUG_NAME (_ghost_group, string_compose ("ghosts for %1", rt->name())); + int meter_width = 3; if (_route && _route->shared_peak_meter()->input_streams().n_total() == 1) { meter_width = 6; @@ -243,8 +248,7 @@ RouteTimeAxisView::set_route (boost::shared_ptr rt) } - _editor.ZoomChanged.connect (sigc::mem_fun(*this, &RouteTimeAxisView::reset_samples_per_unit)); - _editor.HorizontalPositionChanged.connect (sigc::mem_fun (*this, &RouteTimeAxisView::horizontal_position_changed)); + _editor.ZoomChanged.connect (sigc::mem_fun(*this, &RouteTimeAxisView::reset_samples_per_pixel)); ColorsChanged.connect (sigc::mem_fun (*this, &RouteTimeAxisView::color_handler)); PropertyList* plist = new PropertyList(); @@ -694,7 +698,7 @@ RouteTimeAxisView::build_display_menu () } items.push_back (CheckMenuElem (_("Active"))); - CheckMenuItem* i = dynamic_cast (&items.back()); + Gtk::CheckMenuItem* i = dynamic_cast (&items.back()); bool click_sets_active = true; if (active > 0 && inactive == 0) { i->set_active (true); @@ -784,13 +788,9 @@ RouteTimeAxisView::show_timestretch (framepos_t start, framepos_t end, int layer #endif if (timestretch_rect == 0) { - timestretch_rect = new SimpleRect (*canvas_display ()); - timestretch_rect->property_x1() = 0.0; - timestretch_rect->property_y1() = 0.0; - timestretch_rect->property_x2() = 0.0; - timestretch_rect->property_y2() = 0.0; - timestretch_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeStretchFill.get(); - timestretch_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeStretchOutline.get(); + timestretch_rect = new ArdourCanvas::Rectangle (canvas_display ()); + timestretch_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchFill()); + timestretch_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchOutline()); } timestretch_rect->show (); @@ -799,10 +799,8 @@ RouteTimeAxisView::show_timestretch (framepos_t start, framepos_t end, int layer double const x1 = start / _editor.get_current_zoom(); double const x2 = (end - 1) / _editor.get_current_zoom(); - timestretch_rect->property_x1() = x1; - timestretch_rect->property_y1() = current_height() * (layers - layer - 1) / layers; - timestretch_rect->property_x2() = x2; - timestretch_rect->property_y2() = current_height() * (layers - layer) / layers; + timestretch_rect->set (ArdourCanvas::Rect (x1, current_height() * (layers - layer - 1) / layers, + x2, current_height() * (layers - layer) / layers)); } void @@ -912,21 +910,13 @@ RouteTimeAxisView::route_color_changed () } void -RouteTimeAxisView::reset_samples_per_unit () -{ - set_samples_per_unit (_editor.get_current_zoom()); -} - -void -RouteTimeAxisView::horizontal_position_changed () +RouteTimeAxisView::reset_samples_per_pixel () { - if (_view) { - _view->horizontal_position_changed (); - } + set_samples_per_pixel (_editor.get_current_zoom()); } void -RouteTimeAxisView::set_samples_per_unit (double spu) +RouteTimeAxisView::set_samples_per_pixel (double fpp) { double speed = 1.0; @@ -935,10 +925,10 @@ RouteTimeAxisView::set_samples_per_unit (double spu) } if (_view) { - _view->set_samples_per_unit (spu * speed); + _view->set_samples_per_pixel (fpp * speed); } - TimeAxisView::set_samples_per_unit (spu * speed); + TimeAxisView::set_samples_per_pixel (fpp * speed); } void @@ -1156,7 +1146,7 @@ RouteTimeAxisView::clear_playlist () void RouteTimeAxisView::speed_changed () { - Gtkmm2ext::UI::instance()->call_slot (invalidator (*this), boost::bind (&RouteTimeAxisView::reset_samples_per_unit, this)); + Gtkmm2ext::UI::instance()->call_slot (invalidator (*this), boost::bind (&RouteTimeAxisView::reset_samples_per_pixel, this)); } void @@ -1634,11 +1624,11 @@ RouteTimeAxisView::color_handler () { //case cTimeStretchOutline: if (timestretch_rect) { - timestretch_rect->property_outline_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeStretchOutline.get(); + timestretch_rect->set_outline_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchOutline()); } //case cTimeStretchFill: if (timestretch_rect) { - timestretch_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_TimeStretchFill.get(); + timestretch_rect->set_fill_color (ARDOUR_UI::config()->get_canvasvar_TimeStretchFill()); } reset_meter(); @@ -2038,12 +2028,12 @@ RouteTimeAxisView::add_processor_to_subplugin_menu (boost::weak_ptr p for (std::set::const_iterator i = automatable.begin(); i != automatable.end(); ++i) { ProcessorAutomationNode* pan; - CheckMenuItem* mitem; + Gtk::CheckMenuItem* mitem; string name = processor->describe_parameter (*i); items.push_back (CheckMenuElem (name)); - mitem = dynamic_cast (&items.back()); + mitem = dynamic_cast (&items.back()); _subplugin_menu_map[*i] = mitem; @@ -2266,6 +2256,8 @@ RouteTimeAxisView::meter_changed () if (_route && !no_redraw) { request_redraw (); } + // reset peak when meter point changes + gm.reset_peak_display(); } void @@ -2396,31 +2388,26 @@ RouteTimeAxisView::remove_underlay (StreamView* v) void RouteTimeAxisView::set_button_names () { - if (_route && _route->solo_safe()) { - solo_button->remove (); - if (solo_safe_pixbuf == 0) { - solo_safe_pixbuf = ::get_icon("solo-safe-icon"); - } - solo_button->set_image (solo_safe_pixbuf); - solo_button->set_text (string()); - } else { - solo_button->set_image (Glib::RefPtr()); - if (Config->get_solo_control_is_listen_control()) { - switch (Config->get_listen_position()) { - case AfterFaderListen: - solo_button->set_text (_("A")); + if (_route && _route->solo_safe()) { + solo_button->set_visual_state (Gtkmm2ext::VisualState (solo_button->visual_state() | Gtkmm2ext::Insensitive)); + } else { + solo_button->set_visual_state (Gtkmm2ext::VisualState (solo_button->visual_state() & ~Gtkmm2ext::Insensitive)); + } + if (Config->get_solo_control_is_listen_control()) { + switch (Config->get_listen_position()) { + case AfterFaderListen: + solo_button->set_text (_("A")); ARDOUR_UI::instance()->set_tip (*solo_button, _("After-fade listen (AFL)")); - break; - case PreFaderListen: - solo_button->set_text (_("P")); + break; + case PreFaderListen: + solo_button->set_text (_("P")); ARDOUR_UI::instance()->set_tip (*solo_button, _("Pre-fade listen (PFL)")); - break; - } - } else { - solo_button->set_text (_("s")); - ARDOUR_UI::instance()->set_tip (*solo_button, _("Solo")); - } - } + break; + } + } else { + solo_button->set_text (_("s")); + ARDOUR_UI::instance()->set_tip (*solo_button, _("Solo")); + } mute_button->set_text (_("m")); }