X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fregion_view.h;h=7fad731dc26cd82e6814af7875c162ade9212f9b;hb=625240fe303fcd447bf7205396cdde57918b4d0c;hp=16df6be245c1705e0bddd2679e22921d40aa95e6;hpb=664e715a002450ac0f079411f6f051c122a4322a;p=ardour.git diff --git a/gtk2_ardour/region_view.h b/gtk2_ardour/region_view.h index 16df6be245..7fad731dc2 100644 --- a/gtk2_ardour/region_view.h +++ b/gtk2_ardour/region_view.h @@ -19,6 +19,10 @@ #ifndef __gtk_ardour_region_view_h__ #define __gtk_ardour_region_view_h__ +#ifdef interface +#undef interface +#endif + #include #include @@ -45,11 +49,11 @@ namespace ArdourCanvas { class RegionView : public TimeAxisViewItem { public: - RegionView (ArdourCanvas::Group* parent, + RegionView (ArdourCanvas::Container* parent, TimeAxisView& time_view, boost::shared_ptr region, double samples_per_pixel, - Gdk::Color const & basic_color, + uint32_t base_color, bool automation = false); RegionView (const RegionView& other); @@ -57,7 +61,7 @@ class RegionView : public TimeAxisViewItem ~RegionView (); - virtual void init (Gdk::Color const & base_color, bool wait_for_data); + virtual void init (bool wait_for_data); boost::shared_ptr region() const { return _region; } @@ -75,20 +79,19 @@ class RegionView : public TimeAxisViewItem void lower_to_bottom (); bool set_position(framepos_t pos, void* src, double* delta = 0); - void fake_set_opaque (bool yn); virtual void show_region_editor (); void hide_region_editor (); virtual void region_changed (const PBD::PropertyChange&); + uint32_t get_fill_color () const; + virtual GhostRegion* add_ghost (TimeAxisView&) = 0; void remove_ghost_in (TimeAxisView&); void remove_ghost (GhostRegion*); - uint32_t get_fill_color (); - - virtual void entered (bool) {} + virtual void entered () {} virtual void exited () {} virtual void enable_display(bool yn) { _enable_display = yn; } @@ -96,23 +99,15 @@ class RegionView : public TimeAxisViewItem static PBD::Signal1 RegionViewGoingAway; - ARDOUR::BeatsFramesConverter const & region_relative_time_converter () const { - return _region_relative_time_converter; - } - - ARDOUR::BeatsFramesConverter const & source_relative_time_converter () const { - return _source_relative_time_converter; - } - /** Called when a front trim is about to begin */ virtual void trim_front_starting () {} - bool trim_front (framepos_t, bool); + bool trim_front (framepos_t, bool, const int32_t sub_num); /** Called when a start trim has finished */ virtual void trim_front_ending () {} - bool trim_end (framepos_t, bool); + bool trim_end (framepos_t, bool, const int32_t sub_num); void move_contents (ARDOUR::frameoffset_t); virtual void thaw_after_trim (); @@ -120,18 +115,24 @@ class RegionView : public TimeAxisViewItem void drop_silent_frames (); void hide_silent_frames (); - ARDOUR::frameoffset_t snap_frame_to_frame (ARDOUR::frameoffset_t) const; - + struct PositionOrder { + bool operator()(const RegionView* a, const RegionView* b) { + return a->region()->position() < b->region()->position(); + } + }; + + ARDOUR::frameoffset_t snap_frame_to_frame (ARDOUR::frameoffset_t, bool ensure_snap = false) const; + protected: /** Allows derived types to specify their visibility requirements * to the TimeAxisViewItem parent class */ - RegionView (ArdourCanvas::Group *, + RegionView (ArdourCanvas::Container *, TimeAxisView&, boost::shared_ptr, double samples_per_pixel, - Gdk::Color const & basic_color, + uint32_t basic_color, bool recording, TimeAxisViewItem::Visibility); @@ -150,7 +151,7 @@ class RegionView : public TimeAxisViewItem void lock_toggle (); virtual void set_colors (); - virtual void set_frame_color (); + virtual void set_sync_mark_color (); virtual void reset_width_dependent_items (double pixel_width); virtual void color_handler () {} @@ -189,9 +190,6 @@ class RegionView : public TimeAxisViewItem /** a text item to display strip silence statistics */ ArdourCanvas::Text* _silence_text; - - ARDOUR::BeatsFramesConverter _region_relative_time_converter; - ARDOUR::BeatsFramesConverter _source_relative_time_converter; }; #endif /* __gtk_ardour_region_view_h__ */