stub out channel mapping
This commit is contained in:
parent
527014d73a
commit
b0c1ba1e19
|
@ -484,6 +484,30 @@ namespace MediaBrowser.Api.LiveTv
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Route("/LiveTv/ChannelMappingOptions")]
|
||||||
|
[Authenticated(AllowBeforeStartupWizard = true)]
|
||||||
|
public class GetChannelMappingOptions
|
||||||
|
{
|
||||||
|
[ApiMember(Name = "Id", Description = "Provider id", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
|
||||||
|
public string ProviderId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ChannelMappingOptions
|
||||||
|
{
|
||||||
|
public List<TunerChannelMapping> TunerChannels { get; set; }
|
||||||
|
public List<NameIdPair> ProviderChannels { get; set; }
|
||||||
|
public List<NameValuePair> Mappings { get; set; }
|
||||||
|
public string ProviderName { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TunerChannelMapping
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Number { get; set; }
|
||||||
|
public string ProviderChannelNumber { get; set; }
|
||||||
|
public string ProviderChannelName { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[Route("/LiveTv/Registration", "GET")]
|
[Route("/LiveTv/Registration", "GET")]
|
||||||
[Authenticated]
|
[Authenticated]
|
||||||
public class GetLiveTvRegistrationInfo : IReturn<MBRegistrationRecord>
|
public class GetLiveTvRegistrationInfo : IReturn<MBRegistrationRecord>
|
||||||
|
@ -550,6 +574,66 @@ namespace MediaBrowser.Api.LiveTv
|
||||||
return ToOptimizedResult(result);
|
return ToOptimizedResult(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<object> Get(GetChannelMappingOptions request)
|
||||||
|
{
|
||||||
|
var config = GetConfiguration();
|
||||||
|
|
||||||
|
var listingProvider = config.ListingProviders.First(i => string.Equals(request.ProviderId, i.Id, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
|
var tunerChannels = await _liveTvManager.GetChannelsForListingsProvider(request.ProviderId, CancellationToken.None)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
|
var providerChannels = await _liveTvManager.GetChannelsFromListingsProviderData(request.ProviderId, CancellationToken.None)
|
||||||
|
.ConfigureAwait(false);
|
||||||
|
|
||||||
|
var mappings = listingProvider.ChannelMappings.ToList();
|
||||||
|
|
||||||
|
var result = new ChannelMappingOptions
|
||||||
|
{
|
||||||
|
TunerChannels = tunerChannels.Select(i => GetTunerChannelMapping(i, mappings, providerChannels)).ToList(),
|
||||||
|
|
||||||
|
ProviderChannels = providerChannels.Select(i => new NameIdPair
|
||||||
|
{
|
||||||
|
Name = i.Name,
|
||||||
|
Id = i.Number
|
||||||
|
|
||||||
|
}).ToList(),
|
||||||
|
|
||||||
|
Mappings = mappings,
|
||||||
|
|
||||||
|
ProviderName = "Schedules Direct"
|
||||||
|
};
|
||||||
|
|
||||||
|
return ToOptimizedResult(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
private TunerChannelMapping GetTunerChannelMapping(ChannelInfo channel, List<NameValuePair> mappings, List<ChannelInfo> providerChannels)
|
||||||
|
{
|
||||||
|
var result = new TunerChannelMapping
|
||||||
|
{
|
||||||
|
Name = channel.Number + " " + channel.Name,
|
||||||
|
Number = channel.Number
|
||||||
|
};
|
||||||
|
|
||||||
|
var mapping = mappings.FirstOrDefault(i => string.Equals(i.Name, channel.Number, StringComparison.OrdinalIgnoreCase));
|
||||||
|
var providerChannelNumber = channel.Number;
|
||||||
|
|
||||||
|
if (mapping != null)
|
||||||
|
{
|
||||||
|
providerChannelNumber = mapping.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
var providerChannel = providerChannels.FirstOrDefault(i => string.Equals(i.Number, providerChannelNumber, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
||||||
|
if (providerChannel != null)
|
||||||
|
{
|
||||||
|
result.ProviderChannelNumber = providerChannel.Number;
|
||||||
|
result.ProviderChannelName = providerChannel.Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public object Get(GetSatIniMappings request)
|
public object Get(GetSatIniMappings request)
|
||||||
{
|
{
|
||||||
return ToOptimizedResult(_liveTvManager.GetSatIniMappings());
|
return ToOptimizedResult(_liveTvManager.GetSatIniMappings());
|
||||||
|
|
|
@ -1236,6 +1236,12 @@ namespace MediaBrowser.Api.Playback
|
||||||
{
|
{
|
||||||
var inputVideoCodec = videoStream == null ? null : videoStream.Codec;
|
var inputVideoCodec = videoStream == null ? null : videoStream.Codec;
|
||||||
bitrate = ResolutionNormalizer.ScaleBitrate(bitrate.Value, inputVideoCodec, outputVideoCodec);
|
bitrate = ResolutionNormalizer.ScaleBitrate(bitrate.Value, inputVideoCodec, outputVideoCodec);
|
||||||
|
|
||||||
|
// If a max bitrate was requested, don't let the scaled bitrate exceed it
|
||||||
|
if (request.VideoBitRate.HasValue)
|
||||||
|
{
|
||||||
|
bitrate = Math.Min(bitrate.Value, request.VideoBitRate.Value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return bitrate;
|
return bitrate;
|
||||||
|
|
|
@ -387,7 +387,8 @@ namespace MediaBrowser.Controller.LiveTv
|
||||||
|
|
||||||
Task<List<ChannelInfo>> GetSatChannelScanResult(TunerHostInfo info, CancellationToken cancellationToken);
|
Task<List<ChannelInfo>> GetSatChannelScanResult(TunerHostInfo info, CancellationToken cancellationToken);
|
||||||
|
|
||||||
Task<List<ChannelInfo>> GetChannelsFromListingsProvider(string id, CancellationToken cancellationToken);
|
Task<List<ChannelInfo>> GetChannelsForListingsProvider(string id, CancellationToken cancellationToken);
|
||||||
|
Task<List<ChannelInfo>> GetChannelsFromListingsProviderData(string id, CancellationToken cancellationToken);
|
||||||
|
|
||||||
event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled;
|
event EventHandler<GenericEventArgs<TimerEventInfo>> SeriesTimerCancelled;
|
||||||
event EventHandler<GenericEventArgs<TimerEventInfo>> TimerCancelled;
|
event EventHandler<GenericEventArgs<TimerEventInfo>> TimerCancelled;
|
||||||
|
|
|
@ -1015,17 +1015,17 @@ namespace MediaBrowser.Dlna.Didl
|
||||||
int? width = null;
|
int? width = null;
|
||||||
int? height = null;
|
int? height = null;
|
||||||
|
|
||||||
//try
|
try
|
||||||
//{
|
{
|
||||||
// var size = _imageProcessor.GetImageSize(imageInfo);
|
var size = _imageProcessor.GetImageSize(imageInfo);
|
||||||
|
|
||||||
// width = Convert.ToInt32(size.Width);
|
width = Convert.ToInt32(size.Width);
|
||||||
// height = Convert.ToInt32(size.Height);
|
height = Convert.ToInt32(size.Height);
|
||||||
//}
|
}
|
||||||
//catch
|
catch
|
||||||
//{
|
{
|
||||||
|
|
||||||
//}
|
}
|
||||||
|
|
||||||
var inputFormat = (Path.GetExtension(imageInfo.Path) ?? string.Empty)
|
var inputFormat = (Path.GetExtension(imageInfo.Path) ?? string.Empty)
|
||||||
.TrimStart('.')
|
.TrimStart('.')
|
||||||
|
|
|
@ -425,6 +425,12 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
||||||
{
|
{
|
||||||
var inputVideoCodec = videoStream == null ? null : videoStream.Codec;
|
var inputVideoCodec = videoStream == null ? null : videoStream.Codec;
|
||||||
bitrate = ResolutionNormalizer.ScaleBitrate(bitrate.Value, inputVideoCodec, outputVideoCodec);
|
bitrate = ResolutionNormalizer.ScaleBitrate(bitrate.Value, inputVideoCodec, outputVideoCodec);
|
||||||
|
|
||||||
|
// If a max bitrate was requested, don't let the scaled bitrate exceed it
|
||||||
|
if (request.VideoBitRate.HasValue)
|
||||||
|
{
|
||||||
|
bitrate = Math.Min(bitrate.Value, request.VideoBitRate.Value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return bitrate;
|
return bitrate;
|
||||||
|
|
|
@ -382,6 +382,29 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<List<ChannelInfo>> GetChannelsForListingsProvider(ListingsProviderInfo listingsProvider, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
var list = new List<ChannelInfo>();
|
||||||
|
|
||||||
|
foreach (var hostInstance in _liveTvManager.TunerHosts)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var channels = await hostInstance.GetChannels(cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
|
list.AddRange(channels);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.ErrorException("Error getting channels", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return list
|
||||||
|
.Where(i => IsListingProviderEnabledForTuner(listingsProvider, i.TunerHostId))
|
||||||
|
.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
public Task<IEnumerable<ChannelInfo>> GetChannelsAsync(CancellationToken cancellationToken)
|
public Task<IEnumerable<ChannelInfo>> GetChannelsAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
return GetChannelsAsync(false, cancellationToken);
|
return GetChannelsAsync(false, cancellationToken);
|
||||||
|
|
|
@ -2585,7 +2585,13 @@ namespace MediaBrowser.Server.Implementations.LiveTv
|
||||||
return new TunerHosts.SatIp.ChannelScan(_logger).Scan(info, cancellationToken);
|
return new TunerHosts.SatIp.ChannelScan(_logger).Scan(info, cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<ChannelInfo>> GetChannelsFromListingsProvider(string id, CancellationToken cancellationToken)
|
public Task<List<ChannelInfo>> GetChannelsForListingsProvider(string id, CancellationToken cancellationToken)
|
||||||
|
{
|
||||||
|
var info = GetConfiguration().ListingProviders.First(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase));
|
||||||
|
return EmbyTV.EmbyTV.Current.GetChannelsForListingsProvider(info, cancellationToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<List<ChannelInfo>> GetChannelsFromListingsProviderData(string id, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var info = GetConfiguration().ListingProviders.First(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase));
|
var info = GetConfiguration().ListingProviders.First(i => string.Equals(i.Id, id, StringComparison.OrdinalIgnoreCase));
|
||||||
var provider = _listingProviders.First(i => string.Equals(i.Type, info.Type, StringComparison.OrdinalIgnoreCase));
|
var provider = _listingProviders.First(i => string.Equals(i.Type, info.Type, StringComparison.OrdinalIgnoreCase));
|
||||||
|
|
Loading…
Reference in New Issue
Block a user