#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
{
Gdk::Color& basic_color);
RegionView (const RegionView& other);
+ RegionView (const RegionView& other, boost::shared_ptr<ARDOUR::Region> other_region);
~RegionView ();
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<void,RegionView*> RegionViewGoingAway;
- sigc::signal<void> GoingAway;
protected:
boost::shared_ptr<ARDOUR::Region>,
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 ();
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<ARDOUR::Region> _region;
ArdourCanvas::Polygon* sync_mark; ///< polgyon for sync position
+ ArdourCanvas::Line* sync_line; ///< polgyon for sync position
RegionEditor* editor;
- vector<ControlPoint *> control_points;
+ std::vector<ControlPoint *> 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<GhostRegion*> ghosts;
+ std::vector<GhostRegion*> 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<ArdourCanvas::SimpleRect*> _coverage_frames;
};
#endif /* __gtk_ardour_region_view_h__ */