mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-20 14:20:06 +02:00
Store tracks in TrackList with shared_ptr ...
... but still use unique_ptr from track factories and importers.
This commit is contained in:
parent
d52d8de296
commit
68dfdab843
@ -6048,7 +6048,7 @@ int AudacityProject::FindClips(double t0, double t1, bool next, std::vector<Foun
|
||||
|
||||
bool anyWaveTracksSelected =
|
||||
tracks->end() != std::find_if(tracks->begin(), tracks->end(),
|
||||
[] (const movable_ptr<Track>& t) {
|
||||
[] (const std::shared_ptr<Track>& t) {
|
||||
return t->GetSelected() && t->GetKind() == Track::Wave; });
|
||||
|
||||
// first search the tracks individually
|
||||
@ -6136,7 +6136,7 @@ void AudacityProject::OnSelectClip(bool next)
|
||||
if (nTracksSearched > 1) {
|
||||
if (result.waveTrack->GetName() == result.waveTrack->GetDefaultName()) {
|
||||
auto track = std::find_if(GetTracks()->begin(), GetTracks()->end(),
|
||||
[&] (const movable_ptr<Track>& t) { return t.get() == result.waveTrack; });
|
||||
[&] (const std::shared_ptr<Track>& t) { return t.get() == result.waveTrack; });
|
||||
temp.Printf(wxT("%s %d "), _("Track"), std::distance(GetTracks()->begin(), track) + 1);
|
||||
}
|
||||
else
|
||||
@ -7115,7 +7115,7 @@ int AudacityProject::FindClipBoundaries(double time, bool next, std::vector<Foun
|
||||
|
||||
bool anyWaveTracksSelected =
|
||||
tracks->end() != std::find_if(tracks->begin(), tracks->end(),
|
||||
[] (const movable_ptr<Track>& t) {
|
||||
[] (const std::shared_ptr<Track>& t) {
|
||||
return t->GetSelected() && t->GetKind() == Track::Wave; });
|
||||
|
||||
// first search the tracks individually
|
||||
@ -7188,7 +7188,7 @@ wxString AudacityProject::ClipBoundaryMessage(int nTracksSearched, const std::ve
|
||||
if (nTracksSearched > 1) {
|
||||
if (result.waveTrack->GetName() == result.waveTrack->GetDefaultName()) {
|
||||
auto track = std::find_if(GetTracks()->begin(), GetTracks()->end(),
|
||||
[&] (const movable_ptr<Track>& t) { return t.get() == result.waveTrack; });
|
||||
[&] (const std::shared_ptr<Track>& t) { return t.get() == result.waveTrack; });
|
||||
temp.Printf(wxT("%s %d "), _("Track"), std::distance(GetTracks()->begin(), track) + 1);
|
||||
}
|
||||
else
|
||||
|
@ -933,8 +933,6 @@ Track *TrackList::AddToHead(std::unique_ptr<TrackKind> &&t)
|
||||
// Make instantiations for the linker to find
|
||||
template Track *TrackList::AddToHead<TimeTrack>(std::unique_ptr<TimeTrack> &&);
|
||||
|
||||
#ifdef __AUDACITY_OLD_STD__
|
||||
|
||||
template<typename TrackKind>
|
||||
Track *TrackList::Add(std::shared_ptr<TrackKind> &&t)
|
||||
{
|
||||
@ -951,8 +949,6 @@ Track *TrackList::Add(std::shared_ptr<TrackKind> &&t)
|
||||
template Track *TrackList::Add<Track>(std::shared_ptr<Track> &&);
|
||||
template Track *TrackList::Add<WaveTrack>(std::shared_ptr<WaveTrack> &&);
|
||||
|
||||
#endif
|
||||
|
||||
auto TrackList::Replace(Track * t, value_type &&with) -> value_type
|
||||
{
|
||||
value_type holder;
|
||||
|
@ -72,7 +72,7 @@ class NoteTrack;
|
||||
|
||||
class TrackList;
|
||||
|
||||
using ListOfTracks = std::list<movable_ptr<Track>>;
|
||||
using ListOfTracks = std::list< std::shared_ptr< Track > >;
|
||||
|
||||
using TrackNodePointer = ListOfTracks::iterator;
|
||||
|
||||
@ -515,10 +515,8 @@ class TrackList final : public wxEvtHandler, public ListOfTracks
|
||||
template<typename TrackKind>
|
||||
Track *AddToHead(std::unique_ptr<TrackKind> &&t);
|
||||
|
||||
#ifdef __AUDACITY_OLD_STD__
|
||||
template<typename TrackKind>
|
||||
Track *Add(std::shared_ptr<TrackKind> &&t);
|
||||
#endif
|
||||
|
||||
/// Replace first track with second track, give back a holder
|
||||
value_type Replace(Track * t, value_type &&with);
|
||||
|
@ -415,7 +415,7 @@ protected:
|
||||
private:
|
||||
Effect *mpEffect{};
|
||||
LabelTrack *mpTrack{};
|
||||
movable_ptr<Track> mpOrigTrack{};
|
||||
std::shared_ptr<Track> mpOrigTrack{};
|
||||
};
|
||||
|
||||
// Set name to given value if that is not empty, else use default name
|
||||
|
Loading…
x
Reference in New Issue
Block a user