#include <vector>
-#include <libgnomecanvasmm.h>
-#include <libgnomecanvasmm/polygon.h>
#include <sigc++/signal.h>
#include "ardour/region.h"
#include "ardour/beats_frames_converter.h"
+#include "canvas/fwd.h"
+
#include "time_axis_view_item.h"
#include "automation_line.h"
#include "enums.h"
-#include "canvas.h"
class TimeAxisView;
class RegionEditor;
class AutomationTimeAxisView;
class AutomationRegionView;
-namespace Gnome { namespace Canvas {
- class NoEventText;
-} }
+namespace ArdourCanvas {
+ class Polygon;
+ class Text;
+}
class RegionView : public TimeAxisViewItem
{
RegionView (ArdourCanvas::Group* parent,
TimeAxisView& time_view,
boost::shared_ptr<ARDOUR::Region> region,
- double samples_per_unit,
+ double samples_per_pixel,
Gdk::Color const & basic_color,
bool automation = false);
void set_valid (bool yn) { valid = yn; }
virtual void set_height (double);
- virtual void set_samples_per_unit (double);
+ virtual void set_samples_per_pixel (double);
virtual bool set_duration (framecnt_t, void*);
void move (double xdelta, double ydelta);
static PBD::Signal1<void,RegionView*> RegionViewGoingAway;
- ARDOUR::BeatsFramesConverter const & time_converter () {
- return _time_converter;
+ 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 () {}
- void trim_front (framepos_t, bool);
+ bool trim_front (framepos_t, bool);
/** Called when a start trim has finished */
virtual void trim_front_ending () {}
- void trim_end (framepos_t, bool);
+ bool trim_end (framepos_t, bool);
void trim_contents (framepos_t, bool, bool);
virtual void thaw_after_trim ();
void drop_silent_frames ();
void hide_silent_frames ();
+ ARDOUR::frameoffset_t snap_frame_to_frame (ARDOUR::frameoffset_t) const;
+
protected:
/** Allows derived types to specify their visibility requirements
RegionView (ArdourCanvas::Group *,
TimeAxisView&,
boost::shared_ptr<ARDOUR::Region>,
- double samples_per_unit,
+ double samples_per_pixel,
Gdk::Color const & basic_color,
bool recording,
TimeAxisViewItem::Visibility);
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;
+ std::list<ArdourCanvas::Rectangle*> _coverage_frames;
/** a list of rectangles used to show silent segments
*/
- std::list<ArdourCanvas::SimpleRect*> _silent_frames;
+ std::list<ArdourCanvas::Rectangle*> _silent_frames;
/** a list of rectangles used to show the current silence threshold
*/
- std::list<ArdourCanvas::SimpleRect*> _silent_threshold_frames;
+ std::list<ArdourCanvas::Rectangle*> _silent_threshold_frames;
/** a text item to display strip silence statistics
*/
- ArdourCanvas::NoEventText* _silence_text;
+ ArdourCanvas::Text* _silence_text;
- ARDOUR::BeatsFramesConverter _time_converter;
+ ARDOUR::BeatsFramesConverter _region_relative_time_converter;
+ ARDOUR::BeatsFramesConverter _source_relative_time_converter;
};
#endif /* __gtk_ardour_region_view_h__ */