/// <summary> /// Fordert zum Beenden einer Aufzeichnung oder Aufgabe aus. /// </summary> /// <param name="item">Alle notwendigen Informationen zur Aufzeichnung.</param> /// <param name="planner">Die zugehörige Aufzeichnungsplanung.</param> public void Stop( IScheduleInformation item, RecordingPlanner planner ) { // Report Debug.WriteLine( string.Format( "{0} stop {1}", m_planTime.ToLocalTime(), item.Definition.Name ) ); // Readout var definition = item.Definition; var resource = item.Resource; // Forward planner.Stop( definition.UniqueIdentifier ); // Check mode if (definition is ProgramGuideTask) m_lastRunGuide[resource.Name] = m_planTime; else if (definition is SourceListTask) m_lastRunScan[resource.Name] = m_planTime; else VCRConfiguration.Current.HasRecordedSomething = true; }
/// <summary> /// Fordert zum Starten einer Aufzeichnung oder Aufgabe auf. /// </summary> /// <param name="item">Die Beschreibung der Aufgabe.</param> /// <param name="planner">Die zugehörige Aufzeichnungsplanung.</param> /// <param name="context">Zusatzinformationen zur Aufzeichnungsplanung.</param> public void Start( IScheduleInformation item, RecordingPlanner planner, PlanContext context ) { // Report Debug.WriteLine( string.Format( "{0} start{3} on {1}: {2}", m_planTime.ToLocalTime(), item.Resource, item.Definition.Name, item.StartsLate ? " late" : string.Empty ) ); // Forward planner.Start( item ); }
/// <summary> /// Überträgt alle Aufträge in einen Ablaufplanung. /// </summary> /// <param name="scheduler">Die zu befüllende Ablaufplanung.</param> /// <param name="disabled">Alle deaktivierten Aufträge.</param> /// <param name="planner">Die zugehörige Aufzeichnungsplanung.</param> /// <param name="context">Detailinformationen zur Planung.</param> public void AddRegularJobs( RecordingScheduler scheduler, Func<Guid, bool> disabled, RecordingPlanner planner, PlanContext context ) { // Retrieve all jobs related to this profile foreach (var job in m_jobs.Values) foreach (var schedule in job.Schedules) { // No longer in use if (!schedule.IsActive) continue; // Resolve source var source = schedule.Source ?? job.Source; if (source == null) continue; // Resolve profile var resource = planner.GetResourceForProfile( source.ProfileName ); if (resource == null) continue; // Register schedule.AddToScheduler( scheduler, job, new[] { resource }, FindSource, disabled, context ); // Connect context.RegisterSchedule( schedule, job ); } }