X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstreamview.h;h=49001f57f6808d590619b75e10f82ac43d335548;hb=2d0309c09289ec014bd4fa847da4eee3dc92babd;hp=304f38894eee63df775176ccbd2a4cd6e3e687c1;hpb=9c4f5ac000ad91b55e4cf91317b7a89f6239870e;p=ardour.git diff --git a/gtk2_ardour/streamview.h b/gtk2_ardour/streamview.h index 304f38894e..49001f57f6 100644 --- a/gtk2_ardour/streamview.h +++ b/gtk2_ardour/streamview.h @@ -34,18 +34,18 @@ namespace Gdk { } namespace ARDOUR { - class Route; class Crossfade; - class PeakData; class Region; + class Route; class Source; class Track; + struct PeakData; } struct RecBoxInfo { - ArdourCanvas::SimpleRect* rectangle; - nframes_t start; - nframes_t length; + ArdourCanvas::SimpleRect* rectangle; + framepos_t start; + ARDOUR::framecnt_t length; }; class Selectable; @@ -72,6 +72,10 @@ public: virtual int set_samples_per_unit (gdouble spp); gdouble get_samples_per_unit () { return _samples_per_unit; } + virtual void horizontal_position_changed () {} + + virtual void enter_internal_edit_mode (); + virtual void leave_internal_edit_mode (); void set_layer_display (LayerDisplay); LayerDisplay layer_display () const { return _layer_display; } @@ -85,7 +89,7 @@ public: }; Gdk::Color get_region_color () const { return region_color; } - void apply_color (Gdk::Color&, ColorTarget t); + void apply_color (Gdk::Color, ColorTarget t); uint32_t num_selected_regionviews () const; @@ -94,7 +98,7 @@ public: void foreach_selected_regionview (sigc::slot slot); void set_selected_regionviews (RegionSelection&); - void get_selectables (nframes_t, nframes_t, double, double, std::list&); + void get_selectables (ARDOUR::framepos_t, ARDOUR::framepos_t, double, double, std::list&); void get_inverted_selectables (Selection&, std::list& results); virtual void update_contents_metrics(boost::shared_ptr) {} @@ -112,7 +116,14 @@ public: return 0; } - sigc::signal RegionViewAdded; + void check_record_layers (boost::shared_ptr, ARDOUR::framepos_t); + + virtual void playlist_layered (boost::weak_ptr); + + sigc::signal RegionViewAdded; + sigc::signal RegionViewRemoved; + /** Emitted when the height of regions has changed */ + sigc::signal ContentsHeightChanged; protected: StreamView (RouteTimeAxisView&, ArdourCanvas::Group* background_group = 0, ArdourCanvas::Group* canvas_group = 0); @@ -122,7 +133,7 @@ protected: void rec_enable_changed(); void sess_rec_enable_changed(); virtual void setup_rec_box () = 0; - void update_rec_box (); + virtual void update_rec_box (); virtual RegionView* add_region_view_internal (boost::shared_ptr, bool wait_for_waves, bool recording = false) = 0; @@ -133,8 +144,7 @@ protected: void diskstream_changed (); void layer_regions (); - virtual void playlist_switched (boost::weak_ptr); - virtual void playlist_layered (boost::weak_ptr); + void playlist_switched (boost::weak_ptr); virtual void color_handler () = 0; @@ -168,7 +178,13 @@ protected: double height; PBD::ScopedConnectionList rec_data_ready_connections; - nframes_t last_rec_data_frame; + framepos_t last_rec_data_frame; + + /* When recording, the session time at which a new layer must be created for the region + being recorded, or max_framepos if not applicable. + */ + framepos_t _new_rec_layer_time; + void setup_new_rec_layer_time (boost::shared_ptr); private: void update_coverage_frames ();