public async Task<LiveTvServiceStatusInfo> Info(CancellationToken cancellationToken) { var statusInfo = new LiveTvServiceStatusInfo(); try { var adapters = await Adapters(cancellationToken); var response = await Request<Model.ServerInfo>(Constant.Url.ServerInfo, cancellationToken); var version = "<p>Serve version: " + response.sw_version + "</p><p>API version: " + response.api_version + "</p><p>Capabilities:</p><ul>"; foreach (var capability in response.Capabilities) { version += "<li>" + capability + "</li>"; } version += "</ul>"; statusInfo = new LiveTvServiceStatusInfo() { HasUpdateAvailable = false, Status = LiveTvServiceStatus.Ok, Version = version, Tuners = adapters }; } catch (Exception exception) { Logger.ErrorException("Loading server info error, API call failed", exception); } return statusInfo; }
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; }
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 = 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.SingleOrDefault(ac => ac.Id == c.Id); var tunerInfo = new LiveTvTunerInfo() { Id = c.Id.ToString(CultureInfo.InvariantCulture), Name = c.Name, }; if (activeDetails != null) { 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 = false, Status = LiveTvServiceStatus.Ok, StatusMessage = String.Format("MPExtended Service Version: {0} - API Version : {1}", response.ServiceVersion, response.ApiVersion), Tuners = cards, Version = version }; } catch (Exception ex) { Plugin.Logger.Error(ex, "Exception occured getting the MP service status"); result = new LiveTvServiceStatusInfo() { HasUpdateAvailable = false, Status = LiveTvServiceStatus.Unavailable, StatusMessage = "Unable to establish a connection with MediaPortal API - check your settings", Tuners = new List<LiveTvTunerInfo>(), Version = version }; } } return Task.FromResult(result); }