/// <summary> /// Startet die Wiedergabe einer Aufzeichnungsdatei. /// </summary> /// <param name="path">Voller Pfad einer VCR.NET Aufzeichnungsdatei.</param> /// <param name="name">Name der Teilaufzeichnung.</param> /// <param name="recording">Detailinformationen zur aktuellen Aufzeichnung.</param> public void StartReplay( string path, string name, VCRNETRestProxy.Current recording ) { // Forward StartReplay( path, name, recording, false ); }
/// <summary> /// Startet die Wiedergabe einer Aufzeichnungsdatei. /// </summary> /// <param name="path">Voller Pfad einer VCR.NET Aufzeichnungsdatei.</param> /// <param name="name">Name der Teilaufzeichnung.</param> /// <param name="recording">Detailinformationen zur aktuellen Aufzeichnung.</param> /// <param name="startup">Während des Starts der Anwendung gesetzt.</param> private void StartReplay( string path, string name, VCRNETRestProxy.Current recording, bool startup ) { // Shut down DestroyConnector( startup ); // All files var files = new List<string>(); // Try to count number of files if (!string.IsNullOrEmpty( path )) { // Add self files.Add( path ); // See if there are more if (recording != null) if (recording.files != null) if (path.ToLower().EndsWith( ".ts" )) { // Get prefix var prefix = path.Substring( 0, path.Length - 3 ) + " - "; // Search all foreach (var test in recording.files) if (test.ToLower().EndsWith( ".ts" )) if (string.Compare( test, 0, prefix, 0, prefix.Length, true ) == 0) files.Add( test ); } } // Restart m_CurrentConnector = new FileConnector( this, path, name, files.ToArray() ); // Done on first call if (startup) return; // Reset all ChannelListChanged(); // Reload all ShowMessage( RestartAudio( false ), Properties.Resources.NameTitle, true ); }
/// <summary> /// Ermittelt zu einem VCR.NET Sender den vollen Namen inklusive Anbieter. /// </summary> /// <param name="channel">Ein Sender.</param> /// <returns>Der volle Name des Senders.</returns> private static string GetStationName( VCRNETRestProxy.Source channel ) { // None if (null == channel) return null; else return channel.nameWithProvider; }
/// <summary> /// Prüft, ob in den LIVE Modus gewechselt werden kann. /// </summary> /// <param name="next">Die als nächstens anstehende Aktivität.</param> private void ValidateIdle( VCRNETRestProxy.Current next ) { // Get the next recording if (next.start.HasValue) { // When will it start var delta = next.start.Value - DateTime.UtcNow; if (delta.TotalMinutes <= 3) { // Report ShowMessage( Properties.Resources.NextRecording, Properties.Resources.Warning_NotAvailable, false, (int) delta.TotalSeconds ); // Restart request VCRNETRestProxy.GetActivities( Adaptor.EndPoint, ReceiveCurrentRecording, null ); // Done return; } } // Can use LIVE Adaptor.StartLIVE(); }
/// <summary> /// Prüft die Liste der aktiven Aufzeichnungen. /// </summary> /// <param name="activities">Eine nicht leere Liste von aktiven Auzeichnungen.</param> private void ValidateActiveRecording( VCRNETRestProxy.Current[] activities ) { // Check for special operations var first = activities[0]; var current = m_CurrentSource; // See if there is a task running if (first.streamIndex < 0) ShowMessage( Properties.Resources.CurrentUntil, Properties.Resources.Warning_NotAvailable, false, first.source, first.EndsAt.ToLocalTime() ); // See if we have no current source else if (current == null) { // Start watching Adaptor.StartWatch( null ); // Done return; } // Check for current stream else { // Set if we are connected var newCurrent = activities.First( activity => activity.referenceId.Value == current.Activity.referenceId.Value ); if (newCurrent != null) if (string.IsNullOrEmpty( newCurrent.streamTarget )) { // Start watching Adaptor.StartWatch( null ); // Done return; } } // Restart request VCRNETRestProxy.GetActivities( Adaptor.EndPoint, ReceiveCurrentRecording, null ); }
/// <summary> /// Erstellt eine neue Beschreibung. /// </summary> /// <param name="info">Die zugehörige Aktivität.</param> public JobScheduleInfo( VCRNETRestProxy.Current info ) { // Remember Activity = info; }
/// <summary> /// Aktualisiert die Daten der aktuellen Aufzeichnung. /// </summary> /// <param name="current">Die aktuellen Daten.</param> private void ReceiveCurrentRecording( VCRNETRestProxy.Current[] current ) { // Remember if valid m_allActivities = current; m_allActivitiesValid = true; }