10#ifndef __AUDACITY_PENDING_TRACKS__
11#define __AUDACITY_PENDING_TRACKS__
45 void RegisterPendingNewTracks(
TrackList &&list);
50 const Channel &SubstitutePendingChangedChannel(
const Channel &channel)
const;
54 Track &SubstitutePendingChangedTrack(
Track &track)
const;
55 const Track &SubstitutePendingChangedTrack(
const Track &track)
const;
59 const Channel &SubstituteOriginalChannel(
const Channel &channel)
const;
63 const Track &SubstituteOriginalTrack(
const Track &track)
const;
83 Track* RegisterPendingChangedTrack(
90 void UpdatePendingTracks();
99 void ClearPendingTracks(
100 std::vector<std::shared_ptr<Track>> *pAdded =
nullptr);
109 bool ApplyPendingTracks();
111 bool HasPendingTracks()
const;
114 std::pair<Track *, Channel *>
115 DoSubstitutePendingChangedChannel(
Track &track,
size_t channelIndex)
const;
117 std::pair<const Track *, const Channel*>
118 DoSubstituteOriginalChannel(
const Track &track,
size_t channelIndex)
const;
Utility ClientData::Site to register hooks into a host class that attach client data.
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
An object that sends messages to an open-ended list of subscribed callbacks.
A move-only handle representing a connection to a Publisher.
std::shared_ptr< TrackList > mPendingUpdates
std::vector< Updater > mUpdaters
PendingTracks(const PendingTracks &)=delete
Observer::Subscription mTrackListSubscription
std::function< void(Track &dest, const Track &src)> Updater
PendingTracks & operator=(const PendingTracks &)=delete
Abstract base class for an object holding data associated with points on a time axis.
An in-session identifier of track objects across undo states. It does not persist between sessions.
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
A convenient default parameter for class template Site.
Notification of changes in individual tracks of TrackList, or of TrackList's composition.