From 5154f58caa234db297738cbfea00a9d11a4eea19 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 10 Jan 2014 12:08:17 -0500 Subject: fix thinko related to streamview construction that caused bad placement/display of MIDI automation/CC tracks --- gtk2_ardour/automation_streamview.cc | 25 ++++++++++++++++--------- gtk2_ardour/streamview.cc | 15 +++++---------- gtk2_ardour/streamview.h | 2 +- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/gtk2_ardour/automation_streamview.cc b/gtk2_ardour/automation_streamview.cc index a1ba99a2b4..f54b95cbc5 100644 --- a/gtk2_ardour/automation_streamview.cc +++ b/gtk2_ardour/automation_streamview.cc @@ -22,7 +22,10 @@ #include -#include +#include "gtkmm2ext/gtk_ui.h" + +#include "pbd/compose.h" +#include "canvas/debug.h" #include "ardour/midi_region.h" #include "ardour/midi_source.h" @@ -45,11 +48,15 @@ using namespace PBD; using namespace Editing; AutomationStreamView::AutomationStreamView (AutomationTimeAxisView& tv) - : StreamView (*dynamic_cast(tv.get_parent())) + : StreamView (*dynamic_cast(tv.get_parent()), + tv.canvas_display()) , _automation_view(tv) , _pending_automation_state (Off) { - //canvas_rect->property_fill_color_rgba() = stream_base_color; + CANVAS_DEBUG_NAME (_canvas_group, string_compose ("SV canvas group auto %1", tv.name())); + CANVAS_DEBUG_NAME (canvas_rect, string_compose ("SV canvas rectangle auto %1", tv.name())); + + canvas_rect->set_fill (false); canvas_rect->set_outline_color (RGBA_BLACK); } @@ -59,11 +66,11 @@ AutomationStreamView::~AutomationStreamView () RegionView* -AutomationStreamView::add_region_view_internal (boost::shared_ptr region, bool wfd, bool /*recording*/) +AutomationStreamView::add_region_view_internal (boost::shared_ptr region, bool wait_for_data, bool /*recording*/) { assert (region); - if (wfd) { + if (wait_for_data) { boost::shared_ptr mr = boost::dynamic_pointer_cast(region); if (mr) { mr->midi_source()->load_model(); @@ -93,7 +100,7 @@ AutomationStreamView::add_region_view_internal (boost::shared_ptr region arv->line()->set_list (list); } (*i)->set_valid (true); - (*i)->enable_display(wfd); + (*i)->enable_display (wait_for_data); display_region(arv); return 0; @@ -111,12 +118,12 @@ AutomationStreamView::add_region_view_internal (boost::shared_ptr region /* follow global waveform setting */ - if (wfd) { + if (wait_for_data) { region_view->enable_display(true); - //region_view->midi_region()->midi_source(0)->load_model(); + // region_view->midi_region()->midi_source(0)->load_model(); } - display_region(region_view); + display_region (region_view); /* catch regionview going away */ region->DropReferences.connect (*this, invalidator (*this), boost::bind (&AutomationStreamView::remove_region_view, this, boost::weak_ptr(region)), gui_context()); diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index 698c7e16e2..bed80582b2 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -50,16 +50,16 @@ using namespace ARDOUR; using namespace PBD; using namespace Editing; -StreamView::StreamView (RouteTimeAxisView& tv) +StreamView::StreamView (RouteTimeAxisView& tv, ArdourCanvas::Group* canvas_group) : _trackview (tv) - , _canvas_group (new ArdourCanvas::Group (_trackview.canvas_display())) + , _canvas_group (canvas_group ? canvas_group : new ArdourCanvas::Group (_trackview.canvas_display())) , _samples_per_pixel (_trackview.editor().get_current_zoom ()) , rec_updating(false) , rec_active(false) , stream_base_color(0xFFFFFFFF) , _layers (1) , _layer_display (Overlaid) - , height(tv.height) + , height (tv.height) , last_rec_data_frame(0) { CANVAS_DEBUG_NAME (_canvas_group, string_compose ("SV canvas group %1", _trackview.name())); @@ -69,15 +69,10 @@ StreamView::StreamView (RouteTimeAxisView& tv) canvas_rect = new ArdourCanvas::Rectangle (_canvas_group); CANVAS_DEBUG_NAME (canvas_rect, string_compose ("SV canvas rectangle %1", _trackview.name())); canvas_rect->set (ArdourCanvas::Rect (0, 0, ArdourCanvas::COORD_MAX, tv.current_height ())); - canvas_rect->raise(1); // raise above tempo lines - - canvas_rect->set_outline_what (ArdourCanvas::Rectangle::What (ArdourCanvas::Rectangle::TOP | ArdourCanvas::Rectangle::BOTTOM)); + canvas_rect->set_outline_what (ArdourCanvas::Rectangle::BOTTOM); canvas_rect->set_outline_color (RGBA_TO_UINT (0, 0, 0, 255)); canvas_rect->set_fill (true); - - canvas_rect->Event.connect (sigc::bind ( - sigc::mem_fun (_trackview.editor(), &PublicEditor::canvas_stream_view_event), - canvas_rect, &_trackview)); + canvas_rect->Event.connect (sigc::bind (sigc::mem_fun (_trackview.editor(), &PublicEditor::canvas_stream_view_event), canvas_rect, &_trackview)); if (_trackview.is_track()) { _trackview.track()->DiskstreamChanged.connect (*this, invalidator (*this), boost::bind (&StreamView::diskstream_changed, this), gui_context()); diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index c54d5dea70..e7608cb02c 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -127,7 +127,7 @@ public: sigc::signal ContentsHeightChanged; protected: - StreamView (RouteTimeAxisView&); + StreamView (RouteTimeAxisView&, ArdourCanvas::Group* canvas_group = 0); void transport_changed(); void transport_looped(); -- cgit v1.2.3