IsAutoLoop = 0x4,
IsHidden = 0x8,
IsCDMarker = 0x10,
- IsEnd = 0x20
+ IsEnd = 0x20,
+ IsRangeMarker = 0x40,
+ IsStart = 0x80
};
Location (jack_nframes_t sample_start,
void set_hidden (bool yn, void *src);
void set_cd (bool yn, void *src);
void set_is_end (bool yn, void* src);
+ void set_is_start (bool yn, void* src);
bool is_auto_punch () { return _flags & IsAutoPunch; }
bool is_auto_loop () { return _flags & IsAutoLoop; }
bool is_hidden () { return _flags & IsHidden; }
bool is_cd_marker () { return _flags & IsCDMarker; }
bool is_end() { return _flags & IsEnd; }
+ bool is_start() { return _flags & IsStart; }
+ bool is_range_marker() { return _flags & IsRangeMarker; }
sigc::signal<void,Location*> name_changed;
sigc::signal<void,Location*> end_changed;
Location* auto_loop_location () const;
Location* auto_punch_location () const;
Location* end_location() const;
+ Location* start_location() const;
+
+ uint32_t num_range_markers() const;
int set_current (Location *, bool want_lock = true);
Location *current () const { return current_location; }
LocationList locations;
Location *current_location;
- PBD::Lock lock;
+ mutable PBD::Lock lock;
int set_current_unlocked (Location *);
void location_changed (Location*);