11#ifndef __AUDACITY_SYNC_LOCK__
12#define __AUDACITY_SYNC_LOCK__
33 bool IsSyncLocked()
const;
34 void SetSyncLock(
bool flag);
38 bool mIsSyncLocked{
false };
44 static bool IsSyncLockSelected(
const Track &track);
52 {
return pTrack && IsSyncLockSelected(*pTrack); }
55 static bool IsSelectedOrSyncLockSelected(
const Track &track);
62 {
return pTrack && IsSelectedOrSyncLockSelected(*pTrack); }
81struct GetSyncLockPolicyTag;
Utility for non-intrusive definition of a new method on a base class.
SyncLockPolicy
Describes how a track participates in sync-lock groupings.
@ EndSeparator
Delimits the end of a group (of which it is a part)
@ Grouped
Can be part of a group.
@ Isolated
Never part of a group.
DECLARE_EXPORTED_ATTACHED_VIRTUAL(TRACK_SELECTION_API, GetSyncLockPolicy)
TRACK_SELECTION_API BoolSetting SyncLockTracks
declares abstract base class Track, TrackList, and iterators over TrackList
Class template generates single-dispatch, open method registry tables.
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
This specialization of Setting for bool adds a Toggle method to negate the saved value.
An object that sends messages to an open-ended list of subscribed callbacks.
static bool IsSyncLockSelectedP(const Track *pTrack)
static TrackIterRange< const Track > Group(const Track &track)
static bool IsSelectedOrSyncLockSelectedP(const Track *pTrack)
SyncLockState & operator=(const SyncLockState &)=delete
SyncLockState(const SyncLockState &)=delete
AudacityProject & mProject
Abstract base class for an object holding data associated with points on a time axis.
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
A convenient default parameter for class template Site.
Sent after sync lock setting changes, with its new state.
Range between two TrackIters, usable in range-for statements, and with Visit member functions.