/// <summary> /// Add the specified source track, or the first track in the SourceTracks collection if available. /// </summary> /// <param name="sourceTrack"> /// The source track. /// </param> /// <param name="useBehaviourTemplateMode"> /// The use Behaviour Template Mode. /// </param> private void Add(Audio sourceTrack, bool useBehaviourTemplateMode) { if (this.SourceTracks != null) { Audio track = sourceTrack ?? this.GetPreferredAudioTrack(); if (track != null) { if (!useBehaviourTemplateMode) { this.Task.AudioTracks.Add(new AudioTrack { ScannedTrack = track }); return; } switch (this.AudioDefaultsViewModel.AudioBehaviours.SelectedTrackDefaultBehaviour) { case AudioTrackDefaultsMode.None: this.Task.AudioTracks.Add(new AudioTrack { ScannedTrack = track }); break; case AudioTrackDefaultsMode.FirstTrack: AudioBehaviourTrack template = this.currentPreset.AudioTrackBehaviours.BehaviourTracks.FirstOrDefault(); this.Task.AudioTracks.Add(template != null ? new AudioTrack(template) { ScannedTrack = track } : new AudioTrack { ScannedTrack = track }); break; case AudioTrackDefaultsMode.AllTracks: foreach (AudioBehaviourTrack tmpl in this.currentPreset.AudioTrackBehaviours.BehaviourTracks) { this.Task.AudioTracks.Add(tmpl != null ? new AudioTrack(tmpl) { ScannedTrack = track } : new AudioTrack { ScannedTrack = track }); } break; } } } }
/// <summary> /// The equals. /// </summary> /// <param name="other"> /// The other. /// </param> /// <returns> /// The System.Boolean. /// </returns> public bool Equals(Audio other) { if (ReferenceEquals(null, other)) { return false; } if (ReferenceEquals(this, other)) { return true; } return other.TrackNumber == this.TrackNumber && object.Equals(other.Language, this.Language) && object.Equals(other.LanguageCode, this.LanguageCode) && object.Equals(other.Format, this.Format); }
/// <summary> /// Initializes a new instance of the <see cref="AudioTrack"/> class. /// Copy Constructor /// </summary> /// <param name="track"> /// The track. /// </param> /// <param name="setScannedTrack"> /// The set Scanned Track. /// </param> public AudioTrack(AudioTrack track, bool setScannedTrack) { this.bitrate = track.Bitrate; this.drc = track.DRC; this.encoder = track.Encoder; this.gain = track.Gain; this.mixDown = track.MixDown; this.sampleRate = track.SampleRate; if (setScannedTrack) { this.scannedTrack = track.ScannedTrack ?? new Audio(); } this.TrackName = track.TrackName; this.Quality = track.Quality; // Setup Backing Properties this.encoderRateType = track.EncoderRateType; this.SetupLimits(); }
/// <summary> /// Initializes a new instance of the <see cref="AudioTrack"/> class. /// Create a track from a behaviour track. /// </summary> /// <param name="track"> /// The Behavior track /// </param> public AudioTrack(AudioBehaviourTrack track) { this.drc = track.DRC; this.encoder = track.Encoder; this.gain = track.Gain; this.mixDown = track.MixDown != null ? track.MixDown.ShortName : "dpl2"; this.sampleRate = track.SampleRate; this.scannedTrack = new Audio(); this.encoderRateType = track.EncoderRateType; this.quality = track.Quality; this.bitrate = track.Bitrate; this.SetupLimits(); }