1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-07 04:01:54 +01:00

Track.cpp does not depend directly on its subclasses

This commit is contained in:
Paul Licameli
2019-06-06 09:27:35 -04:00
parent 98960c4fc3
commit 291bd7258f
12 changed files with 101 additions and 145 deletions

View File

@@ -1545,13 +1545,28 @@ void ControlToolBar::CancelRecording()
TrackList::Get( *project ).ClearPendingTracks();
}
#ifdef EXPERIMENTAL_MIDI_OUT
#include "NoteTrack.h"
#endif
TransportTracks GetAllPlaybackTracks(TrackList &trackList, bool selectedOnly, bool useMidi)
{
TransportTracks result;
result.playbackTracks = trackList.GetWaveTrackArray(selectedOnly);
{
auto range = trackList.Any< WaveTrack >()
+ (selectedOnly ? &Track::IsSelected : &Track::Any );
for (auto pTrack: range)
result.playbackTracks.push_back(
pTrack->SharedPointer< WaveTrack >() );
}
#ifdef EXPERIMENTAL_MIDI_OUT
if (useMidi)
result.midiTracks = trackList.GetNoteTrackConstArray(selectedOnly);
if (useMidi) {
auto range = trackList.Any< const NoteTrack >() +
(selectedOnly ? &Track::IsSelected : &Track::Any );
for (auto pTrack: range)
result.midiTracks.push_back(
pTrack->SharedPointer< const NoteTrack >() );
}
#else
WXUNUSED(useMidi);
#endif