Esempio n. 1
0
 /// <summary>
 /// Merge only Tracks that are soloed.
 /// </summary>
 private void MergeSoloTracks()
 {
     // For each track in the Sequence.
     foreach (TrackInfo info in tracks)
     {
         // If the track is soloed and not muted.
         if (info.trk.Solo && !info.trk.Mute)
         {
             // Merge track.
             mergedTrack = Track.Merge(mergedTrack, info.trk);
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Gets all of the Tracks in the Sequence merged into one Track.
        /// </summary>
        /// <returns>
        /// The Tracks in the Sequence merged into one Track.
        /// </returns>
        /// <remarks>
        /// Only Tracks that are not muted are merged into one Track. Also, if
        /// any of the Tracks have been soloed, only those Tracks are merged.
        /// </remarks>
        public Track GetMergedTrack()
        {
            // If the Sequence has been changed.
            if (IsDirty())
            {
                mergedTrack = new Track();

                // If any of the tracks have been soloed.
                if (IsSolo())
                {
                    // Merge only the solo tracks.
                    MergeSoloTracks();
                }
                // Else none of the tracks have been soloed.
                else
                {
                    // For each track in the sequence.
                    foreach (TrackInfo info in tracks)
                    {
                        // If the track is not muted.
                        if (!info.trk.Mute)
                        {
                            // Merge track.
                            mergedTrack = Track.Merge(mergedTrack, info.trk);
                        }
                    }
                }

                // Update versioning information.
                foreach (TrackInfo info in tracks)
                {
                    info.version = info.trk.Version;
                }

                // Indicate that the merged track has been updated.
                dirty = false;
            }

            return(mergedTrack);
        }