X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_view.h;h=de9d95ccf38fe8ebf52a1cacf29e0cb5bbf31b08;hb=2e1332f74f803a1be4c8bb4911266aef4b63f145;hp=d16d81e373897bca3794cd1d1dc02373a42d4392;hpb=ef65fd251023378699c3ef3842fc55e93a92d04a;p=ardour.git diff --git a/gtk2_ardour/region_view.h b/gtk2_ardour/region_view.h index d16d81e373..de9d95ccf3 100644 --- a/gtk2_ardour/region_view.h +++ b/gtk2_ardour/region_view.h @@ -31,12 +31,12 @@ #include "enums.h" #include "waveview.h" #include "canvas.h" -#include "color.h" class TimeAxisView; class RegionEditor; class GhostRegion; class AutomationTimeAxisView; +class AutomationRegionView; class RegionView : public TimeAxisViewItem { @@ -48,6 +48,7 @@ class RegionView : public TimeAxisViewItem Gdk::Color& basic_color); RegionView (const RegionView& other); + RegionView (const RegionView& other, boost::shared_ptr other_region); ~RegionView (); @@ -57,37 +58,38 @@ class RegionView : public TimeAxisViewItem bool is_valid() const { return valid; } - void set_valid (bool yn) { valid = yn; } + virtual void set_height (double); virtual void set_samples_per_unit (double); virtual bool set_duration (nframes_t, void*); void move (double xdelta, double ydelta); - void raise (); void raise_to_top (); - void lower (); void lower_to_bottom (); bool set_position(nframes_t pos, void* src, double* delta = 0); void fake_set_opaque (bool yn); - virtual void show_region_editor () = 0; + virtual void show_region_editor () {} virtual void hide_region_editor(); virtual void region_changed (ARDOUR::Change); - virtual GhostRegion* add_ghost (AutomationTimeAxisView&) = 0; - void remove_ghost (GhostRegion*); + virtual GhostRegion* add_ghost (TimeAxisView&) = 0; + void remove_ghost_in (TimeAxisView&); + void remove_ghost (GhostRegion*); uint32_t get_fill_color (); virtual void entered () {} virtual void exited () {} + + void enable_display(bool yn) { _enable_display = yn; } + void update_coverage_frames (LayerDisplay); static sigc::signal RegionViewGoingAway; - sigc::signal GoingAway; protected: @@ -99,14 +101,13 @@ class RegionView : public TimeAxisViewItem boost::shared_ptr, double samples_per_unit, Gdk::Color& basic_color, + bool recording, TimeAxisViewItem::Visibility); virtual void region_resized (ARDOUR::Change); - void region_moved (void *); virtual void region_muted (); void region_locked (); void region_opacity (); - void region_layered (); virtual void region_renamed (); void region_sync_changed (); @@ -120,25 +121,34 @@ class RegionView : public TimeAxisViewItem virtual void set_frame_color (); virtual void reset_width_dependent_items (double pixel_width); - virtual void color_handler (ColorID, uint32_t) {} + virtual void color_handler () {} boost::shared_ptr _region; ArdourCanvas::Polygon* sync_mark; ///< polgyon for sync position + ArdourCanvas::Line* sync_line; ///< polgyon for sync position RegionEditor* editor; - vector control_points; + std::vector control_points; double current_visible_sync_position; - bool valid; ///< see StreamView::redisplay_diskstream() + bool valid; ///< see StreamView::redisplay_diskstream() + bool _enable_display; ///< see StreamView::redisplay_diskstream() double _pixel_width; + double _height; bool in_destructor; bool wait_for_data; sigc::connection data_ready_connection; - vector ghosts; + std::vector ghosts; + + /** a list of rectangles which are used in stacked display mode to colour + different bits of regions according to whether or not they are the one + that will be played at any given time. + */ + std::list _coverage_frames; }; #endif /* __gtk_ardour_region_view_h__ */