add insert-at combo selector for duplicate tracks dialog
[ardour.git] / gtk2_ardour / audio_streamview.h
index 05ce8125f618d514b155851076b5d808f80b769c..443a39063b80d5a4dafce23efc81ec0a508e1ad1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2001, 2006 Paul Davis 
+    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
 #include <map>
 #include <cmath>
 
-#include <ardour/location.h>
-#include "enums.h"
-#include "simplerect.h"
-#include "color.h"
+#include <boost/weak_ptr.hpp>
+
+#include "ardour/location.h"
+#include "point_selection.h"
+#include "editing.h"
 #include "streamview.h"
 
 namespace Gdk {
@@ -34,12 +35,10 @@ namespace Gdk {
 }
 
 namespace ARDOUR {
-       class Route;
-       class Diskstream;
-       class Crossfade;
-       class PeakData;
        class AudioRegion;
+       class Route;
        class Source;
+       struct PeakData;
 }
 
 class PublicEditor;
@@ -47,64 +46,41 @@ class Selectable;
 class AudioTimeAxisView;
 class AudioRegionView;
 class RegionSelection;
-class CrossfadeView;
 class Selection;
 
 class AudioStreamView : public StreamView
 {
   public:
        AudioStreamView (AudioTimeAxisView&);
-       ~AudioStreamView ();
-
-       void set_waveform_shape (WaveformShape);
-
-       int set_height (gdouble h);
-       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 set_show_waveforms_recording (bool yn) { use_rec_regions = yn; }
+       void show_all_fades ();
+       void hide_all_fades ();
 
-       void foreach_crossfadeview (void (CrossfadeView::*pmf)(void));
+       std::pair<std::list<AudioRegionView*>, std::list<AudioRegionView*> > hide_xfades_with (boost::shared_ptr<ARDOUR::AudioRegion> ar);
 
-       void show_all_xfades ();
-       void hide_all_xfades ();
-       void hide_xfades_involving (AudioRegionView&);
-       void reveal_xfades_involving (AudioRegionView&);
+       RegionView* create_region_view (boost::shared_ptr<ARDOUR::Region>, bool, bool);
+       void set_selected_points (PointSelection&);
 
   private:
        void setup_rec_box ();
-       void rec_peak_range_ready (jack_nframes_t start, jack_nframes_t cnt, ARDOUR::Source* src); 
-       void update_rec_regions ();
-       
-       void add_region_view_internal (ARDOUR::Region*, bool wait_for_waves);
-       void remove_region_view (ARDOUR::Region* );
-       void remove_audio_region_view (ARDOUR::AudioRegion* );
-       void remove_audio_rec_region (ARDOUR::AudioRegion*);
+       void rec_peak_range_ready (framepos_t start, ARDOUR::framecnt_t cnt, boost::weak_ptr<ARDOUR::Source> src);
+       void update_rec_regions (ARDOUR::framepos_t, ARDOUR::framecnt_t);
 
-       void undisplay_diskstream ();
-       void redisplay_diskstream ();
-       void playlist_modified ();
-       void playlist_changed (ARDOUR::Diskstream *ds);
+       RegionView* add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves, bool recording = false);
+       void remove_audio_region_view (boost::shared_ptr<ARDOUR::AudioRegion> );
 
-       void add_crossfade (ARDOUR::Crossfade*);
-       void remove_crossfade (ARDOUR::Crossfade*);
+       void redisplay_track ();
 
-       void color_handler (ColorID id, uint32_t val);
-       
+       void color_handler ();
 
        double _amplitude_above_axis;
-       
-       typedef list<CrossfadeView*> CrossfadeViewList;
-       CrossfadeViewList crossfade_views;
-       bool              crossfades_visible;
-
-       list<sigc::connection>     peak_ready_connections;
-       jack_nframes_t             last_rec_peak_frame;
-       map<ARDOUR::Source*, bool> rec_peak_ready_map;
-       
+
+       std::map<boost::shared_ptr<ARDOUR::Source>, bool> rec_data_ready_map;
+
+       bool outline_region;
 };
 
 #endif /* __ardour_audio_streamview_h__ */