open un-writable sessions without complaining, and desensitize all/most actions that...
[ardour.git] / gtk2_ardour / audio_streamview.cc
index 41d402f8f6b71542af7497ebcade893c4101b873..8d12fef2c230847543daf44a362a4c8b2968d989 100644 (file)
@@ -31,6 +31,7 @@
 #include <ardour/playlist_templates.h>
 #include <ardour/source.h>
 #include <ardour/region_factory.h>
+#include <ardour/profile.h>
 
 #include "audio_streamview.h"
 #include "audio_region_view.h"
@@ -59,14 +60,8 @@ AudioStreamView::AudioStreamView (AudioTimeAxisView& tv)
        crossfades_visible = true;
        _waveform_scale = LinearWaveform;
        _waveform_shape = Traditional;
-       
-       if (tv.is_audio_track())
-               stream_base_color = ARDOUR_UI::config()->canvasvar_AudioTrackBase.get();
-       else
-               stream_base_color = ARDOUR_UI::config()->canvasvar_AudioBusBase.get();
-       
-       canvas_rect->property_fill_color_rgba() = stream_base_color;
-       canvas_rect->property_outline_color_rgba() = RGBA_BLACK;
+
+       color_handler ();
 
        _amplitude_above_axis = 1.0;
 
@@ -166,7 +161,7 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
                                                   _samples_per_unit, region_color, recording, TimeAxisViewItem::Visibility(TimeAxisViewItem::ShowFrame | TimeAxisViewItem::HideFrameRight));
                } else {
                        region_view = new AudioRegionView (canvas_group, _trackview, region, 
-                                                  _samples_per_unit, region_color);
+                                                          _samples_per_unit, region_color);
                }
                break;
        case Destructive:
@@ -731,6 +726,28 @@ AudioStreamView::update_rec_regions ()
        }
 }
 
+void
+AudioStreamView::show_all_fades ()
+{
+       for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
+               AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i);
+               if (arv) {
+                       arv->set_fade_visibility (true);
+               }
+       }
+}
+
+void
+AudioStreamView::hide_all_fades ()
+{
+       for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
+               AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i);
+               if (arv) {
+                       arv->set_fade_visibility (false);
+               }
+       }
+}
+
 void
 AudioStreamView::show_all_xfades ()
 {
@@ -773,8 +790,11 @@ AudioStreamView::color_handler ()
        }
 
        if (!_trackview.is_track()) {
-               canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_AudioBusBase.get();
+               if (Profile->get_sae() && _trackview.route()->master()) {
+                       canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_AudioMasterBusBase.get();
+               } else {
+                       canvas_rect->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_AudioBusBase.get();
+               }
        }
 }