Use a dedicated Canvas Group for ARV

This commit is contained in:
Robin Gareus 2022-12-09 05:27:55 +01:00
parent f003bee985
commit 6c524b3f3b
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 14 additions and 3 deletions

View File

@ -61,8 +61,13 @@ using namespace Editing;
AudioStreamView::AudioStreamView (AudioTimeAxisView& tv)
: StreamView (tv)
{
color_handler ();
/* use a dedicated group for Audio regions (on top of the grid) */
_region_group = new ArdourCanvas::Container (_canvas_group);
_region_group->raise_to_top ();
_region_group->set_render_with_alpha (UIConfiguration::instance().modifier ("region alpha").a());
_amplitude_above_axis = 1.0;
color_handler ();
}
int
@ -100,14 +105,14 @@ AudioStreamView::create_region_view (boost::shared_ptr<Region> r, bool wait_for_
case NonLayered:
case Normal:
if (recording) {
region_view = new AudioRegionView (_canvas_group, _trackview, region,
region_view = new AudioRegionView (_region_group, _trackview, region,
_samples_per_pixel, region_color, recording, TimeAxisViewItem::Visibility(
TimeAxisViewItem::ShowFrame |
TimeAxisViewItem::HideFrameRight |
TimeAxisViewItem::HideFrameLeft |
TimeAxisViewItem::HideFrameTB));
} else {
region_view = new AudioRegionView (_canvas_group, _trackview, region,
region_view = new AudioRegionView (_region_group, _trackview, region,
_samples_per_pixel, region_color);
}
break;
@ -470,6 +475,8 @@ AudioStreamView::hide_xfades_with (boost::shared_ptr<AudioRegion> ar)
void
AudioStreamView::color_handler ()
{
_region_group->set_render_with_alpha (UIConfiguration::instance().modifier ("region alpha").a());
//case cAudioTrackBase:
if (_trackview.is_track()) {
canvas_rect->set_fill_color (UIConfiguration::instance().color_mod ("audio track base", "audio track base"));

View File

@ -69,6 +69,8 @@ public:
void reload_waves ();
ArdourCanvas::Container* region_canvas () const { return _region_group; }
private:
void setup_rec_box ();
void rec_peak_range_ready (samplepos_t start, ARDOUR::samplecnt_t cnt, boost::weak_ptr<ARDOUR::Source> src);
@ -85,6 +87,8 @@ private:
std::map<boost::shared_ptr<ARDOUR::Source>, bool> rec_data_ready_map;
ArdourCanvas::Container* _region_group;
bool outline_region;
};