예제 #1
0
        /// <summary>
        /// Wandelt eine Aufzeichnung in die Beschreibung eines Empfangsdatenstroms.
        /// </summary>
        /// <returns>Die passende Beschreibung.</returns>
        public ReceiveInformation ToReceiveInformation()
        {
            // Attach to the station and the profile
            var source  = Source;
            var profile = VCRProfiles.FindProfile(source.ProfileName);

            // May want to disable the program guide
            var streams             = Streams.Clone();
            var disableProgramGuide = profile.ScanConfiguration.GetFilter(source.Source).DisableProgramGuide;

            if (disableProgramGuide)
            {
                streams.ProgramGuide = false;
            }

            // Create protocol structure
            return
                (new ReceiveInformation
            {
                HDTVFileBufferSize = VCRConfiguration.Current.HighDefinitionVideoBufferSize,
                SDTVFileBufferSize = VCRConfiguration.Current.StandardVideoBufferSize,
                AudioFileBufferSize = VCRConfiguration.Current.AudioBufferSize,
                UniqueIdentifier = ScheduleUniqueID.Value,
                SelectionKey = source.SelectionKey,
                RecordingPath = FileName,
                Streams = streams,
            });
        }
예제 #2
0
        /// <summary>
        /// Erstellt eine exakte Kopie dieser Aufzeichnungsinformation.
        /// </summary>
        /// <returns>Die exakte Kopie.</returns>
        public VCRRecordingInfo Clone()
        {
            // Create clone
            var clone =
                new VCRRecordingInfo
            {
                Source = (Source == null) ? null : new SourceSelection {
                    DisplayName = Source.DisplayName, SelectionKey = Source.SelectionKey
                },
                Streams = (Streams == null) ? null : Streams.Clone(),
                DisableHibernation = DisableHibernation,
                ScheduleUniqueID   = ScheduleUniqueID,
                m_physicalStart    = m_physicalStart,
                JobUniqueID        = JobUniqueID,
                StartsLate         = StartsLate,
                TotalSize          = TotalSize,
                StartsAt           = StartsAt,
                FileName           = FileName,
                IsHidden           = IsHidden,
                m_endsAt           = m_endsAt,
                Name = Name,
            };

            // File data
            clone.RecordingFiles.AddRange(RecordingFiles.Select(info => new FileInformation {
                Path = info.Path, VideoType = info.VideoType, ScheduleIdentifier = info.ScheduleIdentifier
            }));

            // Report
            return(clone);
        }
예제 #3
0
 /// <summary>
 /// Erzeugt eine Kopie dieser Beschreibung.
 /// </summary>
 /// <returns>Die gewünschte Kopie.</returns>
 public ReceiveInformation Clone()
 {
     // Create
     return
         (new ReceiveInformation
     {
         AudioFileBufferSize = AudioFileBufferSize,
         SDTVFileBufferSize = SDTVFileBufferSize,
         HDTVFileBufferSize = HDTVFileBufferSize,
         UniqueIdentifier = UniqueIdentifier,
         RecordingPath = RecordingPath,
         SelectionKey = SelectionKey,
         Streams = Streams.Clone(),
     });
 }