add new control protocol related files
[ardour.git] / libs / ardour / ardour / location.h
index 1da67c78da587406a2fded4609e573cd1509ec9b..ee55adb600995908a9069241b08902b8f0491c00 100644 (file)
@@ -50,7 +50,9 @@ class Location : public Stateful, public sigc::trackable
                IsAutoLoop = 0x4,
                IsHidden = 0x8,
                IsCDMarker = 0x10,
-               IsEnd = 0x20
+               IsEnd = 0x20,
+               IsRangeMarker = 0x40,
+               IsStart = 0x80
        };
 
        Location (jack_nframes_t sample_start,
@@ -88,6 +90,7 @@ class Location : public Stateful, public sigc::trackable
        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; }
@@ -95,6 +98,8 @@ class Location : public Stateful, public sigc::trackable
        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;
@@ -144,6 +149,9 @@ class Locations : public Stateful, public StateManager
        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; }
@@ -179,7 +187,7 @@ class Locations : public Stateful, public StateManager
 
        LocationList       locations;
        Location          *current_location;
-       PBD::Lock          lock;
+       mutable PBD::Lock  lock;
 
        int set_current_unlocked (Location *);
        void location_changed (Location*);