Add Location flags to define sections

This commit is contained in:
Robin Gareus 2023-08-11 15:35:12 +02:00
parent c084c9dbfa
commit 6cf2659f8b
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
4 changed files with 16 additions and 0 deletions

View file

@ -67,6 +67,7 @@ public:
IsClockOrigin = 0x200,
IsXrun = 0x400,
IsCueMarker = 0x800,
IsSection = 0x1000,
};
Location (Session &);
@ -108,6 +109,7 @@ public:
void set_is_clock_origin (bool yn, void* src);
void set_skip (bool yn);
void set_skipping (bool yn);
void set_section (bool yn);
bool is_auto_punch () const { return _flags & IsAutoPunch; }
bool is_auto_loop () const { return _flags & IsAutoLoop; }
@ -121,6 +123,7 @@ public:
bool is_clock_origin() const { return _flags & IsClockOrigin; }
bool is_skipping() const { return (_flags & IsSkip) && (_flags & IsSkipping); }
bool is_xrun() const { return _flags & IsXrun; }
bool is_section() const { return _flags & IsSection; }
bool matches (Flags f) const { return _flags & f; }
/* any range with start < end -- not a marker */

View file

@ -595,6 +595,7 @@ setup_enum_writer ()
REGISTER_CLASS_ENUM (Location, IsClockOrigin);
REGISTER_CLASS_ENUM (Location, IsXrun);
REGISTER_CLASS_ENUM (Location, IsCueMarker);
REGISTER_CLASS_ENUM (Location, IsSection);
REGISTER_BITS (_Location_Flags);
REGISTER_CLASS_ENUM (Track, NoFreeze);

View file

@ -575,6 +575,17 @@ Location::set_skipping (bool yn)
}
}
void
Location::set_section (bool yn)
{
if (is_session_range ()) {
return;
}
if (set_flag_internal (yn, IsSection)) {
emit_signal (Flag); /* EMIT SIGNAL */
}
}
void
Location::set_auto_punch (bool yn, void*)
{

View file

@ -3003,6 +3003,7 @@ LuaBindings::common (lua_State* L)
.addConst ("IsHidden", ARDOUR::Location::Flags(Location::IsHidden))
.addConst ("IsCDMarker", ARDOUR::Location::Flags(Location::IsCDMarker))
.addConst ("IsCueMarker", ARDOUR::Location::Flags(Location::IsCueMarker))
.addConst ("IsSection", ARDOUR::Location::Flags(Location::IsSection))
.addConst ("IsRangeMarker", ARDOUR::Location::Flags(Location::IsRangeMarker))
.addConst ("IsSessionRange", ARDOUR::Location::Flags(Location::IsSessionRange))
.addConst ("IsSkip", ARDOUR::Location::Flags(Location::IsSkip))