Example #1
0
        public async Task <LiveTvServiceStatusInfo> GetStatusInfoAsync(CancellationToken cancellationToken)
        {
            var status = new LiveTvServiceStatusInfo();
            var list   = new List <LiveTvTunerInfo>();

            foreach (var hostInstance in _liveTvManager.TunerHosts)
            {
                try
                {
                    var tuners = await hostInstance.GetTunerInfos(cancellationToken).ConfigureAwait(false);

                    list.AddRange(tuners);
                }
                catch (Exception ex)
                {
                    _logger.ErrorException("Error getting tuners", ex);
                }
            }

            status.Tuners    = list;
            status.Status    = LiveTvServiceStatus.Ok;
            status.Version   = _appHpst.ApplicationVersion.ToString();
            status.IsVisible = false;
            return(status);
        }
Example #2
0
        public Task <LiveTvServiceStatusInfo> GetStatusInfoAsync(CancellationToken cancellationToken)
        {
            LiveTvServiceStatusInfo result;

            var configurationValidationResult = Plugin.Instance.Configuration.Validate();
            var pluginVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();

            // Validate configuration first
            if (!configurationValidationResult.IsValid)
            {
                result = new LiveTvServiceStatusInfo()
                {
                    HasUpdateAvailable = false,
                    Status             = LiveTvServiceStatus.Unavailable,
                    StatusMessage      = "Cannot connect to DVBViewer Recording Service - check your settings",
                    Version            = String.Format("DVBViewer Live TV Plugin V{0}", pluginVersion)
                };
            }
            else
            {
                try
                {
                    var serviceVersion = Plugin.TvProxy.GetStatusInfo(cancellationToken).Version();

                    result = new LiveTvServiceStatusInfo()
                    {
                        HasUpdateAvailable = false,
                        Status             = LiveTvServiceStatus.Ok,
                        StatusMessage      = "Successfully connected to DVBViewer Recording Service API",
                        Version            = String.Format("DVBViewer Live TV Plugin V{0} - {1}", pluginVersion, serviceVersion)
                    };
                }
                catch (Exception ex)
                {
                    Plugin.Logger.Error(ex, "Exception occured getting the DVBViewer Recording Service status");

                    result = new LiveTvServiceStatusInfo()
                    {
                        HasUpdateAvailable = false,
                        Status             = LiveTvServiceStatus.Unavailable,
                        StatusMessage      = "Cannot connect to DVBViewer Recording Service - check your settings",
                        Version            = String.Format("DVBViewer Live TV Plugin V{0}", pluginVersion)
                    };
                }
            }

            return(Task.FromResult(result));
        }
Example #3
0
        public LiveTvServiceStatusInfo GetInfo(Stream stream, IJsonSerializer json, ILogger logger)
        {
            logger.Info("[VDR] Start GetChannels");
            var root = json.DeserializeFromStream <RootObject>(stream);

            logger.Info("[VDR] got Root Object");
//	    logger.Info(string.Format("[VDR] Display Root Object: {0}", json.SerializeToString(root)));
            LiveTvServiceStatusInfo StatusInfo = new LiveTvServiceStatusInfo();

            if (root != null && root.version != null)
            {
                logger.Info("[VDR] Parse Channel Response");
                UtilsHelper.DebugInformation(logger, string.Format("[VDR] InfoResponse: {0}", json.SerializeToString(root)));
                StatusInfo.Status  = LiveTvServiceStatus.Ok;
                StatusInfo.Version = root.vdr.version;
                StatusInfo.Tuners  = new List <LiveTvTunerInfo>();
            }
            else
            {
                logger.Info("[VDR] Parse Channel Response failed");
                logger.Info(string.Format("[VDR] InfoResponse: {0}", json.SerializeToString(root)));
            }
            return(StatusInfo);
        }
        public Task <LiveTvServiceStatusInfo> GetStatusInfoAsync(CancellationToken cancellationToken)
        {
            LiveTvServiceStatusInfo result;

            var configurationValidationResult = Plugin.Instance.Configuration.Validate();
            var version = Assembly.GetExecutingAssembly().GetName().Version.ToString();

            // Validate configuration first
            if (!configurationValidationResult.IsValid)
            {
                result = new LiveTvServiceStatusInfo()
                {
                    HasUpdateAvailable = false,
                    Status             = LiveTvServiceStatus.Unavailable,
                    StatusMessage      = configurationValidationResult.Summary,
                    Tuners             = new List <LiveTvTunerInfo>(),
                    Version            = String.Format("MediaPortal Plugin: {0} - MPExtended Service: unavailable", version)
                };
            }
            else
            {
                try
                {
                    // Test connections to both the streaming and tv proxy
                    var response = Plugin.StreamingProxy.GetStatusInfo(cancellationToken);
                    response = Plugin.TvProxy.GetStatusInfo(cancellationToken);

                    var activeCards = Plugin.TvProxy.GetActiveCards(cancellationToken);
                    var cards       = Plugin.TvProxy.GetTunerCards(cancellationToken).Where(c => c.Enabled).Select(c =>
                    {
                        var activeDetails = activeCards.LastOrDefault(ac => ac.Id == c.Id);
                        var tunerInfo     = new LiveTvTunerInfo()
                        {
                            Id   = c.Id.ToString(CultureInfo.InvariantCulture),
                            Name = c.Name,
                        };
                        if (activeDetails != null)
                        {
                            tunerInfo.ChannelId   = activeDetails.ChannelId.ToString(CultureInfo.InvariantCulture);
                            tunerInfo.ProgramName = Plugin.TvProxy.GetCurrentProgram(cancellationToken, activeDetails.ChannelId);
                            tunerInfo.SourceType  = Enum.GetName(typeof(WebCardType), activeDetails.Type);
                            tunerInfo.Clients     = new List <string>()
                            {
                                activeDetails.User.Name
                            };
                            tunerInfo.Status =
                                activeDetails.IsRecording ? LiveTvTunerStatus.RecordingTv :
                                activeDetails.IsTunerLocked ? LiveTvTunerStatus.LiveTv : LiveTvTunerStatus.Available;
                        }
                        return(tunerInfo);
                    }).ToList();

                    result = new LiveTvServiceStatusInfo()
                    {
                        HasUpdateAvailable = (response.ServiceVersion != "0.6.0.4-Emby") ? true : false,
                        Status             = LiveTvServiceStatus.Ok,
                        StatusMessage      = String.Format("MediaPortal Plugin: {0} - MPExtended Service: {1}", version, response.ServiceVersion),
                        Tuners             = cards,
                        Version            = String.Format("MediaPortal Plugin: {0} - MPExtended Service: {1}", version, response.ServiceVersion)
                    };
                }
                catch (Exception ex)
                {
                    Plugin.Logger.Error(ex, "Exception occured getting the MPExtended Service status");

                    result = new LiveTvServiceStatusInfo()
                    {
                        HasUpdateAvailable = false,
                        Status             = LiveTvServiceStatus.Unavailable,
                        StatusMessage      = "Unable to establish a connection with MPExtended - check your settings",
                        Tuners             = new List <LiveTvTunerInfo>(),
                        Version            = version
                    };
                }
            }

            return(Task.FromResult(result));
        }