- 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_mark () { return _flags & IsMark; }
- 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;
- sigc::signal<void,Location*> start_changed;
+ void set_is_range_marker (bool yn, void* src);
+ void set_skip (bool yn);
+ void set_skipping (bool yn);
+
+ bool is_auto_punch () const { return _flags & IsAutoPunch; }
+ bool is_auto_loop () const { return _flags & IsAutoLoop; }
+ bool is_mark () const { return _flags & IsMark; }
+ bool is_hidden () const { return _flags & IsHidden; }
+ bool is_cd_marker () const { return _flags & IsCDMarker; }
+ bool is_session_range () const { return _flags & IsSessionRange; }
+ bool is_range_marker() const { return _flags & IsRangeMarker; }
+ bool is_skip() const { return _flags & IsSkip; }
+ bool is_skipping() const { return (_flags & IsSkip) && (_flags & IsSkipping); }
+ bool matches (Flags f) const { return _flags & f; }
+
+ Flags flags () const { return _flags; }
+
+ boost::shared_ptr<SceneChange> scene_change() const { return _scene_change; }
+ void set_scene_change (boost::shared_ptr<SceneChange>);
+
+ /* these are static signals for objects that want to listen to all
+ locations at once.
+ */
+
+ static PBD::Signal1<void,Location*> name_changed;
+ static PBD::Signal1<void,Location*> end_changed;
+ static PBD::Signal1<void,Location*> start_changed;
+ static PBD::Signal1<void,Location*> flags_changed;
+ static PBD::Signal1<void,Location*> lock_changed;
+ static PBD::Signal1<void,Location*> position_lock_style_changed;
+
+ /* this is sent only when both start and end change at the same time */
+ static PBD::Signal1<void,Location*> changed;
+
+ /* these are member signals for objects that care only about
+ changes to this object
+ */
+
+ PBD::Signal0<void> Changed;
+
+ PBD::Signal0<void> NameChanged;
+ PBD::Signal0<void> EndChanged;
+ PBD::Signal0<void> StartChanged;
+ PBD::Signal0<void> FlagsChanged;
+ PBD::Signal0<void> LockChanged;
+ PBD::Signal0<void> PositionLockStyleChanged;