/// <summary> /// Ändert den aktuellen Sender oder wählt einen NVOD Dienst zum aktuellen /// Portal aus. /// </summary> /// <param name="source">Eine DVB.NET <see cref="SourceSelection"/>.</param> /// <param name="portal">Optional ein Portal.</param> /// <param name="service">Optional ein Dienst des Portals.</param> /// <returns>Name und Tonspur des neuen Senders oder <i>null</i>, wenn kein /// Senderwechsel suchgeführt wurde.</returns> private string SetStation(SourceSelection source, SourceSelection portal, ServiceItem service) { // Stop data transmission at once Accessor.Stop(); // Get rid of stream and recording StopReceivers(false); // Tune source.SelectGroup(); // Check for encryption var station = (Station)source.Source; if (station.IsEncrypted) { try { // Request clean stream Device.Decrypt(station); } catch { // Ignore any error } } // Retrieve the source information var info = source.GetSourceInformationAsync().Result; // Remember CurrentSourceConfiguration = info; CurrentSelection = source; CurrentService = service; CurrentPortal = portal; CurrentEntry = null; NextEntry = null; // Reset EPG display ShowCurrentEntry(); // Store to settings if not a service if (CurrentPortal == null) { LocalInfo.LocalStation = source.DisplayName; } // Load audio ResetAudio(); // Choose return(LoadingDefaults ? null : SetAudio(null)); }
/// <summary> /// Wählt einen NVOD Dienst des aktuellen Portals zur Anzeige aus. /// <see cref="SetStation(SourceSelection, SourceSelection, ServiceItem)"/> /// </summary> /// <param name="service">Der gewünschte NVOD Dienst.</param> /// <returns>Der Name des NVOD Dienstes und die aktive Tonspur, wenn /// ein Wechsel des Senders möglich war.</returns> public override string SetService(ServiceItem service) { // Find the related station SourceSelection[] stations = Profile.FindSource(service.Identifier); // None found if (stations.Length < 1) { return(null); } // Change if ((null != CurrentPortal) && CurrentPortal.Source.Equals(stations[0].Source)) { return(SetStation(stations[0], null, null)); } else { return(SetStation(stations[0], (null == CurrentPortal) ? CurrentSelection : CurrentPortal, service)); } }
/// <summary> /// Ein NVOD Dienst kann auf diesem Wege nicht ausgewählt werden. /// </summary> /// <param name="service">Name des gewünschten NVOD Dienstes.</param> /// <returns>Wirft immer eine <see cref="NotSupportedException"/>.</returns> public override string SetService( ServiceItem service ) { // None return null; }
/// <summary> /// Ein NVOD Dienst kann auf diesem Wege nicht ausgewählt werden. /// </summary> /// <param name="service">Name des gewünschten NVOD Dienstes.</param> /// <returns>Wirft immer eine <see cref="NotSupportedException"/>.</returns> public override string SetService(ServiceItem service) { // None return(null); }
/// <summary> /// Wählte einen NVOD Dienst des aktuellen Portals zur Anzeige. /// </summary> /// <param name="service">Name des Dienstes.</param> /// <returns>Name des Dienstes mit aktueller Tonspur oder <i>null</i>.</returns> public override string SetService(ServiceItem service) { // Do nothing return(null); }
/// <summary> /// Wählte einen NVOD Dienst des aktuellen Portals zur Anzeige. /// </summary> /// <param name="service">Name des Dienstes.</param> /// <returns>Name des Dienstes mit aktueller Tonspur oder <i>null</i>.</returns> public override string SetService( ServiceItem service ) { // Do nothing return null; }
/// <summary> /// Wählt einen NVOD Dienst des aktuellen Portals zur Anzeige aus. /// <see cref="SetStation(SourceSelection, SourceSelection, ServiceItem)"/> /// </summary> /// <param name="service">Der gewünschte NVOD Dienst.</param> /// <returns>Der Name des NVOD Dienstes und die aktive Tonspur, wenn /// ein Wechsel des Senders möglich war.</returns> public override string SetService( ServiceItem service ) { // Find the related station SourceSelection[] stations = Profile.FindSource( service.Identifier ); // None found if (stations.Length < 1) return null; // Change if ((null != CurrentPortal) && CurrentPortal.Source.Equals( stations[0].Source )) return SetStation( stations[0], null, null ); else return SetStation( stations[0], (null == CurrentPortal) ? CurrentSelection : CurrentPortal, service ); }
/// <summary> /// Ändert den aktuellen Sender oder wählt einen NVOD Dienst zum aktuellen /// Portal aus. /// </summary> /// <param name="source">Eine DVB.NET <see cref="SourceSelection"/>.</param> /// <param name="portal">Optional ein Portal.</param> /// <param name="service">Optional ein Dienst des Portals.</param> /// <returns>Name und Tonspur des neuen Senders oder <i>null</i>, wenn kein /// Senderwechsel suchgeführt wurde.</returns> private string SetStation( SourceSelection source, SourceSelection portal, ServiceItem service ) { // Stop data transmission at once Accessor.Stop(); // Get rid of stream and recording StopReceivers( false ); // Tune source.SelectGroup(); // Check for encryption var station = (Station) source.Source; if (station.IsEncrypted) try { // Request clean stream Device.Decrypt( station ); } catch { // Ignore any error } // Retrieve the source information var info = source.GetSourceInformationAsync().Result; // Remember CurrentSourceConfiguration = info; CurrentSelection = source; CurrentService = service; CurrentPortal = portal; CurrentEntry = null; NextEntry = null; // Reset EPG display ShowCurrentEntry(); // Store to settings if not a service if (CurrentPortal == null) LocalInfo.LocalStation = source.DisplayName; // Load audio ResetAudio(); // Choose return LoadingDefaults ? null : SetAudio( null ); }
/// <summary> /// Wählte einen NVOD Dienst des aktuellen Portals zur Anzeige. /// </summary> /// <param name="service">Name des Dienstes.</param> /// <returns>Name des Dienstes mit aktueller Tonspur oder <i>null</i>.</returns> public override string SetService( ServiceItem service ) { // Forward if (m_CurrentConnector.SetService( service ) == null) return null; else return RestartAudio( false ); }
/// <summary> /// Neuen NVOD Dienst auswählen. /// </summary> /// <param name="service"></param> /// <returns>Anzeigename von Dienst und aktiver Tonspue oder <i>null</i>.</returns> public abstract string SetService(ServiceItem service);
/// <summary> /// Ein NVOD Dienst kann auf diesem Wege nicht ausgewählt werden. /// </summary> /// <param name="service">Name des gewünschten NVOD Dienstes.</param> /// <returns>Wirft immer eine <see cref="NotSupportedException"/>.</returns> public override string SetService(ServiceItem service) { // Not supported return(null); }
/// <summary> /// Wählt einen NVOD Dienst aus. /// </summary> /// <param name="service">Der gewünschte Dienst.</param> /// <returns>Name des Dienstes inklusive der aktuellen Tonspur oder /// <i>null</i>, wenn eine Aktivierung des Dienstes nicht möglich war.</returns> public override string SetService( ServiceItem service ) { // Must be a known channel VCRNETRestProxy.Source source; if (!Sources.TryGetValue( service.Identifier, out source )) return null; // Stop sending data Accessor.Stop(); // Tune VCRNETRestProxy.TuneSync( m_serverRoot, Profile, SourceIdentifier.ToString( service.Identifier ) ); // Got the portal if (service.Index == 0) { // Reset CurrentService = null; // Done return source.nameWithProvider; } // Got a real service CurrentService = service.Name; // Done return CurrentService; }
/// <summary> /// Ein NVOD Dienst kann auf diesem Wege nicht ausgewählt werden. /// </summary> /// <param name="service">Name des gewünschten NVOD Dienstes.</param> /// <returns>Wirft immer eine <see cref="NotSupportedException"/>.</returns> public override string SetService( ServiceItem service ) { // Not supported return null; }