From 1feb9b5e89cec9bd335e171e9c441826aece5a44 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 4 Jun 2023 20:21:41 +0200 Subject: [PATCH] Streamview: NO-OP, consolidate code --- gtk2_ardour/audio_streamview.cc | 35 +-------------------------------- gtk2_ardour/midi_streamview.cc | 35 +-------------------------------- gtk2_ardour/streamview.cc | 29 +++++++++++++++++++++++++++ gtk2_ardour/streamview.h | 12 ++++++----- 4 files changed, 38 insertions(+), 73 deletions(-) diff --git a/gtk2_ardour/audio_streamview.cc b/gtk2_ardour/audio_streamview.cc index 7c0da292c9..8868bfcc31 100644 --- a/gtk2_ardour/audio_streamview.cc +++ b/gtk2_ardour/audio_streamview.cc @@ -276,40 +276,7 @@ AudioStreamView::setup_rec_box () // cerr << "\tNOT rolling, rec_rects = " << rec_rects.size() << " rec_regions = " << rec_regions.size() << endl; - if (!rec_rects.empty() || !rec_regions.empty()) { - - /* disconnect rapid update */ - screen_update_connection.disconnect(); - rec_data_ready_connections.drop_connections (); - rec_updating = false; - rec_active = false; - - /* remove temp regions */ - - for (list,RegionView*> >::iterator iter = rec_regions.begin(); iter != rec_regions.end(); ) { - list,RegionView*> >::iterator tmp; - - tmp = iter; - ++tmp; - - (*iter).first->drop_references (); - - iter = tmp; - } - - rec_regions.clear(); - - // cerr << "\tclear " << rec_rects.size() << " rec rects\n"; - - /* transport stopped, clear boxes */ - for (vector::iterator iter=rec_rects.begin(); iter != rec_rects.end(); ++iter) { - RecBoxInfo &rect = (*iter); - delete rect.rectangle; - } - - rec_rects.clear(); - - } + cleanup_rec_box (); } } diff --git a/gtk2_ardour/midi_streamview.cc b/gtk2_ardour/midi_streamview.cc index f0da7c0a81..7478f52784 100644 --- a/gtk2_ardour/midi_streamview.cc +++ b/gtk2_ardour/midi_streamview.cc @@ -554,41 +554,8 @@ MidiStreamView::setup_rec_box () } else { // cerr << "\tNOT rolling, rec_rects = " << rec_rects.size() << " rec_regions = " << rec_regions.size() << endl; + cleanup_rec_box (); - if (!rec_rects.empty() || !rec_regions.empty()) { - - /* disconnect rapid update */ - screen_update_connection.disconnect(); - rec_data_ready_connections.drop_connections (); - rec_updating = false; - rec_active = false; - - /* remove temp regions */ - - for (list,RegionView*> >::iterator iter = rec_regions.begin(); iter != rec_regions.end();) { - list,RegionView*> >::iterator tmp; - - tmp = iter; - ++tmp; - - (*iter).first->drop_references (); - - iter = tmp; - } - - rec_regions.clear(); - - // cerr << "\tclear " << rec_rects.size() << " rec rects\n"; - - /* transport stopped, clear boxes */ - for (vector::iterator iter=rec_rects.begin(); iter != rec_rects.end(); ++iter) { - RecBoxInfo &rect = (*iter); - delete rect.rectangle; - } - - rec_rects.clear(); - - } } } diff --git a/gtk2_ardour/streamview.cc b/gtk2_ardour/streamview.cc index 0dc5868557..3b5318d087 100644 --- a/gtk2_ardour/streamview.cc +++ b/gtk2_ardour/streamview.cc @@ -463,6 +463,35 @@ StreamView::update_rec_box () } } +void +StreamView::cleanup_rec_box () +{ + if (rec_rects.empty() && rec_regions.empty()) { + return; + } + + /* disconnect rapid update */ + screen_update_connection.disconnect(); + rec_data_ready_connections.drop_connections (); + rec_updating = false; + rec_active = false; + + /* remove temp regions */ + for (auto const& i : rec_regions) { + i.first->drop_references (); + } + + rec_regions.clear(); + + // cerr << "\tclear " << rec_rects.size() << " rec rects\n"; + + /* transport stopped, clear boxes */ + for (auto const& i : rec_rects) { + delete i.rectangle; + } + rec_rects.clear(); +} + RegionView* StreamView::find_view (std::shared_ptr region) { diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index 55f5ec5e81..9c73f974cf 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -137,11 +137,13 @@ public: protected: StreamView (RouteTimeAxisView&, ArdourCanvas::Container* canvas_group = 0); - void transport_changed(); - void transport_looped(); - void rec_enable_changed(); - void sess_rec_enable_changed(); - void create_rec_box(samplepos_t sample_pos, double width); + void transport_changed(); + void transport_looped(); + void rec_enable_changed(); + void sess_rec_enable_changed(); + void create_rec_box(samplepos_t sample_pos, double width); + void cleanup_rec_box (); + virtual void setup_rec_box () = 0; virtual void update_rec_box ();