Fix crash when X11 is not available for VST UIs
[ardour.git] / gtk2_ardour / audio_streamview.h
index 1443bd5b8ffd0410cffb545f8b29736975422c9d..47cc32fa259f42dd6f951b9f8ce9e89f3054473f 100644 (file)
@@ -1,20 +1,23 @@
 /*
-    Copyright (C) 2001, 2006 Paul Davis
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
+ * Copyright (C) 2006-2012 David Robillard <d@drobilla.net>
+ * Copyright (C) 2007-2012 Carl Hetherington <carl@carlh.net>
+ * Copyright (C) 2007-2017 Paul Davis <paul@linuxaudiosystems.com>
+ * Copyright (C) 2007 Doug McLain <doug@nostar.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
 
 #ifndef __ardour_audio_streamview_h__
 #define __ardour_audio_streamview_h__
@@ -26,8 +29,8 @@
 #include <boost/weak_ptr.hpp>
 
 #include "ardour/location.h"
+#include "point_selection.h"
 #include "editing.h"
-#include "simplerect.h"
 #include "streamview.h"
 
 namespace Gdk {
@@ -35,12 +38,10 @@ namespace Gdk {
 }
 
 namespace ARDOUR {
-       class Route;
-       class Diskstream;
-       class Crossfade;
-       class PeakData;
        class AudioRegion;
+       class Route;
        class Source;
+       struct PeakData;
 }
 
 class PublicEditor;
@@ -48,66 +49,38 @@ class Selectable;
 class AudioTimeAxisView;
 class AudioRegionView;
 class RegionSelection;
-class CrossfadeView;
 class Selection;
 
 class AudioStreamView : public StreamView
 {
-  public:
+public:
        AudioStreamView (AudioTimeAxisView&);
-       ~AudioStreamView ();
-
-       int set_samples_per_unit (gdouble spp);
 
        int     set_amplitude_above_axis (gdouble app);
        gdouble get_amplitude_above_axis () { return _amplitude_above_axis; }
 
-       void set_show_waveforms (bool yn);
-
-       void foreach_crossfadeview (void (CrossfadeView::*pmf)(void));
-
        void show_all_fades ();
        void hide_all_fades ();
 
-       void show_all_xfades ();
-       void hide_all_xfades ();
-       void hide_xfades_involving (AudioRegionView&);
-       void reveal_xfades_involving (AudioRegionView&);
+       std::pair<std::list<AudioRegionView*>, std::list<AudioRegionView*> > hide_xfades_with (boost::shared_ptr<ARDOUR::AudioRegion> ar);
 
        RegionView* create_region_view (boost::shared_ptr<ARDOUR::Region>, bool, bool);
+       void set_selected_points (PointSelection&);
 
-  private:
+private:
        void setup_rec_box ();
-       void rec_peak_range_ready (nframes_t start, nframes_t cnt, boost::weak_ptr<ARDOUR::Source> src);
-       void update_rec_regions ();
+       void rec_peak_range_ready (samplepos_t start, ARDOUR::samplecnt_t cnt, boost::weak_ptr<ARDOUR::Source> src);
+       void update_rec_regions (ARDOUR::samplepos_t, ARDOUR::samplecnt_t);
 
        RegionView* add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves, bool recording = false);
-       void remove_region_view (boost::weak_ptr<ARDOUR::Region> );
        void remove_audio_region_view (boost::shared_ptr<ARDOUR::AudioRegion> );
 
-       void undisplay_diskstream ();
-       void redisplay_diskstream ();
-       void playlist_layered (boost::weak_ptr<ARDOUR::Diskstream>);
-       void playlist_switched (boost::weak_ptr<ARDOUR::Diskstream>);
-
-       void add_crossfade (boost::weak_ptr<ARDOUR::Crossfade>);
-       void remove_crossfade (boost::shared_ptr<ARDOUR::Region>);
+       void redisplay_track ();
 
        void color_handler ();
 
-       void update_contents_height ();
-       void update_content_height (CrossfadeView *);
-
-       void parameter_changed (std::string const &);
-       void set_waveform_shape (ARDOUR::WaveformShape);
-       void set_waveform_scale (ARDOUR::WaveformScale);
-
        double _amplitude_above_axis;
 
-       typedef std::map<boost::shared_ptr<ARDOUR::Crossfade>, CrossfadeView*> CrossfadeViewList;
-       CrossfadeViewList crossfade_views;
-       bool              crossfades_visible;
-
        std::map<boost::shared_ptr<ARDOUR::Source>, bool> rec_data_ready_map;
 
        bool outline_region;