X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstreamview.h;h=3b1b4cb12b81271c06fe50e5f5db34d21405fcf8;hb=e11b3f90c2d02735a071d526d67cfd0de90cbac3;hp=197c854b7a91f8cb2ec4f6ef7d4c4d7a24fdc79c;hpb=fe7c3976c9382bb9f19797034dece570eefcbf01;p=ardour.git diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index 197c854b7a..3b1b4cb12b 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -20,14 +20,12 @@ #define __ardour_streamview_h__ #include -#include #include #include #include "enums.h" #include "simplerect.h" #include "canvas.h" -#include "color.h" namespace Gdk { class Color; @@ -61,19 +59,22 @@ class StreamView : public sigc::trackable public: virtual ~StreamView (); - RouteTimeAxisView& trackview() { return _trackview; } + RouteTimeAxisView& trackview() { return _trackview; } + const RouteTimeAxisView& trackview() const { return _trackview; } void attach (); void set_zoom_all(); int set_position (gdouble x, gdouble y); - virtual int set_height (gdouble); + virtual int set_height (double); virtual int set_samples_per_unit (gdouble spp); gdouble get_samples_per_unit () { return _samples_per_unit; } - ArdourCanvas::Item* canvas_item() { return canvas_group; } + void set_layer_display (LayerDisplay); + + ArdourCanvas::Group* canvas_item() { return canvas_group; } enum ColorTarget { RegionColor, @@ -92,38 +93,41 @@ public: void add_region_view (boost::shared_ptr); void region_layered (RegionView*); + virtual void update_contents_height (); + + virtual void redisplay_diskstream () = 0; sigc::signal RegionViewAdded; protected: - StreamView (RouteTimeAxisView&); + StreamView (RouteTimeAxisView&, ArdourCanvas::Group* group = NULL); //private: (FIXME?) void transport_changed(); + void transport_looped(); void rec_enable_changed(); void sess_rec_enable_changed(); virtual void setup_rec_box () = 0; void update_rec_box (); - virtual void update_rec_regions () = 0; + //virtual void update_rec_regions () = 0; - virtual void add_region_view_internal (boost::shared_ptr, bool wait_for_waves, bool watch_death) = 0; + virtual RegionView* add_region_view_internal (boost::shared_ptr, bool wait_for_waves, bool recording = false) = 0; virtual void remove_region_view (boost::weak_ptr ); //void remove_rec_region (boost::shared_ptr); (unused) void display_diskstream (boost::shared_ptr); virtual void undisplay_diskstream (); - virtual void redisplay_diskstream () = 0; void diskstream_changed (); - void playlist_state_changed (ARDOUR::Change); virtual void playlist_changed (boost::shared_ptr); - virtual void playlist_modified (); + virtual void playlist_modified_weak (boost::weak_ptr); + virtual void playlist_modified (boost::shared_ptr); - virtual void color_handler (ColorID, uint32_t) = 0; - + virtual void color_handler () = 0; RouteTimeAxisView& _trackview; + bool owns_canvas_group; ArdourCanvas::Group* canvas_group; ArdourCanvas::SimpleRect* canvas_rect; /* frame around the whole thing */ @@ -134,7 +138,7 @@ protected: sigc::connection screen_update_connection; vector rec_rects; - list > rec_regions; + list< std::pair,RegionView* > > rec_regions; bool rec_updating; bool rec_active; bool use_rec_regions; @@ -144,6 +148,13 @@ protected: vector playlist_connections; sigc::connection playlist_change_connection; + + int layers; + double height; + LayerDisplay layer_display; + + list rec_data_ready_connections; + jack_nframes_t last_rec_data_frame; }; #endif /* __ardour_streamview_h__ */