コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
            }
        }
コード例 #3
0
 /// <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;
 }
コード例 #4
0
 /// <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);
 }
コード例 #5
0
 /// <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);
 }
コード例 #6
0
 /// <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;
 }
コード例 #7
0
        /// <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 );
        }
コード例 #8
0
        /// <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 );
        }
コード例 #9
0
 /// <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 );
 }
コード例 #10
0
 /// <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);
コード例 #11
0
 /// <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);
 }
コード例 #12
0
        /// <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;
        }
コード例 #13
0
 /// <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;
 }