#include <sigc++/signal.h>
#include "ardour/region.h"
-#include "ardour/beats_frames_converter.h"
+#include "ardour/beats_samples_converter.h"
#include "canvas/fwd.h"
class RegionView : public TimeAxisViewItem
{
- public:
+public:
RegionView (ArdourCanvas::Container* parent,
TimeAxisView& time_view,
boost::shared_ptr<ARDOUR::Region> region,
double samples_per_pixel,
uint32_t base_color,
- bool automation = false);
+ bool automation = false);
RegionView (const RegionView& other);
RegionView (const RegionView& other, boost::shared_ptr<ARDOUR::Region> other_region);
~RegionView ();
+ virtual void set_selected (bool yn) {
+ _region->set_selected_for_solo(yn);
+ TimeAxisViewItem::set_selected(yn);
+ }
+
virtual void init (bool wait_for_data);
boost::shared_ptr<ARDOUR::Region> region() const { return _region; }
virtual void set_height (double);
virtual void set_samples_per_pixel (double);
- virtual bool set_duration (framecnt_t, void*);
+ virtual bool set_duration (samplecnt_t, void*);
void move (double xdelta, double ydelta);
void raise_to_top ();
void lower_to_bottom ();
- bool set_position(framepos_t pos, void* src, double* delta = 0);
+ bool set_position(samplepos_t pos, void* src, double* delta = 0);
virtual void show_region_editor ();
void hide_region_editor ();
virtual void exited () {}
virtual void enable_display(bool yn) { _enable_display = yn; }
- virtual void update_coverage_frames (LayerDisplay);
+ virtual void update_coverage_samples (LayerDisplay);
static PBD::Signal1<void,RegionView*> RegionViewGoingAway;
/** Called when a front trim is about to begin */
virtual void trim_front_starting () {}
- bool trim_front (framepos_t, bool);
+ bool trim_front (samplepos_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);
- void move_contents (ARDOUR::frameoffset_t);
+ bool trim_end (samplepos_t, bool, const int32_t sub_num);
+ void move_contents (ARDOUR::sampleoffset_t);
virtual void thaw_after_trim ();
- void set_silent_frames (const ARDOUR::AudioIntervalResult&, double threshold);
- void drop_silent_frames ();
- void hide_silent_frames ();
+ void set_silent_samples (const ARDOUR::AudioIntervalResult&, double threshold);
+ void drop_silent_samples ();
+ void hide_silent_samples ();
struct PositionOrder {
bool operator()(const RegionView* a, const RegionView* b) {
}
};
- ARDOUR::frameoffset_t snap_frame_to_frame (ARDOUR::frameoffset_t, bool explicitly = false) const;
-
- protected:
+ ARDOUR::MusicSample snap_sample_to_sample (ARDOUR::sampleoffset_t, bool ensure_snap = false) const;
+
+protected:
/** Allows derived types to specify their visibility requirements
* to the TimeAxisViewItem parent class
*/
RegionView (ArdourCanvas::Container *,
- TimeAxisView&,
- boost::shared_ptr<ARDOUR::Region>,
- double samples_per_pixel,
- uint32_t basic_color,
- bool recording,
- TimeAxisViewItem::Visibility);
+ TimeAxisView&,
+ boost::shared_ptr<ARDOUR::Region>,
+ double samples_per_pixel,
+ uint32_t basic_color,
+ bool recording,
+ TimeAxisViewItem::Visibility);
- bool canvas_group_event (GdkEvent*);
+ bool canvas_group_event (GdkEvent*);
virtual void region_resized (const PBD::PropertyChange&);
virtual void region_muted ();
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::Rectangle*> _coverage_frames;
+ * different bits of regions according to whether or not they are the one
+ * that will be played at any given time.
+ */
+ std::list<ArdourCanvas::Rectangle*> _coverage_samples;
/** a list of rectangles used to show silent segments
*/
- std::list<ArdourCanvas::Rectangle*> _silent_frames;
+ std::list<ArdourCanvas::Rectangle*> _silent_samples;
/** a list of rectangles used to show the current silence threshold
*/
- std::list<ArdourCanvas::Rectangle*> _silent_threshold_frames;
- /** a text item to display strip silence statistics
- */
- ArdourCanvas::Text* _silence_text;
+ std::list<ArdourCanvas::Rectangle*> _silent_threshold_samples;
+ /** a text item to display strip silence statistics */
+ ArdourCanvas::Text* _silence_text;
};
#endif /* __gtk_ardour_region_view_h__ */