|
@@ -53,7 +53,7 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
|
private readonly LiveTvDtoService _tvDtoService;
|
|
private readonly LiveTvDtoService _tvDtoService;
|
|
|
|
|
|
- private ILiveTvService[] _services = new ILiveTvService[] { };
|
|
|
|
|
|
+ private ILiveTvService[] _services = Array.Empty<ILiveTvService>();
|
|
|
|
|
|
private ITunerHost[] _tunerHosts = Array.Empty<ITunerHost>();
|
|
private ITunerHost[] _tunerHosts = Array.Empty<ITunerHost>();
|
|
private IListingsProvider[] _listingProviders = Array.Empty<IListingsProvider>();
|
|
private IListingsProvider[] _listingProviders = Array.Empty<IListingsProvider>();
|
|
@@ -127,8 +127,6 @@ namespace Emby.Server.Implementations.LiveTv
|
|
|
|
|
|
foreach (var service in _services)
|
|
foreach (var service in _services)
|
|
{
|
|
{
|
|
- service.DataSourceChanged += service_DataSourceChanged;
|
|
|
|
-
|
|
|
|
if (service is EmbyTV.EmbyTV embyTv)
|
|
if (service is EmbyTV.EmbyTV embyTv)
|
|
{
|
|
{
|
|
embyTv.TimerCreated += EmbyTv_TimerCreated;
|
|
embyTv.TimerCreated += EmbyTv_TimerCreated;
|
|
@@ -184,14 +182,6 @@ namespace Emby.Server.Implementations.LiveTv
|
|
return EmbyTV.EmbyTV.Current.DiscoverTuners(newDevicesOnly, cancellationToken);
|
|
return EmbyTV.EmbyTV.Current.DiscoverTuners(newDevicesOnly, cancellationToken);
|
|
}
|
|
}
|
|
|
|
|
|
- void service_DataSourceChanged(object sender, EventArgs e)
|
|
|
|
- {
|
|
|
|
- if (!_isDisposed)
|
|
|
|
- {
|
|
|
|
- _taskManager.CancelIfRunningAndQueue<RefreshChannelsScheduledTask>();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public QueryResult<BaseItem> GetInternalChannels(LiveTvChannelQuery query, DtoOptions dtoOptions, CancellationToken cancellationToken)
|
|
public QueryResult<BaseItem> GetInternalChannels(LiveTvChannelQuery query, DtoOptions dtoOptions, CancellationToken cancellationToken)
|
|
{
|
|
{
|
|
var user = query.UserId.Equals(Guid.Empty) ? null : _userManager.GetUserById(query.UserId);
|
|
var user = query.UserId.Equals(Guid.Empty) ? null : _userManager.GetUserById(query.UserId);
|
|
@@ -2153,17 +2143,28 @@ namespace Emby.Server.Implementations.LiveTv
|
|
Dispose(true);
|
|
Dispose(true);
|
|
}
|
|
}
|
|
|
|
|
|
- private bool _isDisposed = false;
|
|
|
|
|
|
+ private bool _disposed = false;
|
|
/// <summary>
|
|
/// <summary>
|
|
/// Releases unmanaged and - optionally - managed resources.
|
|
/// Releases unmanaged and - optionally - managed resources.
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
|
|
/// <param name="dispose"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
|
|
protected virtual void Dispose(bool dispose)
|
|
protected virtual void Dispose(bool dispose)
|
|
{
|
|
{
|
|
|
|
+ if (_disposed)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (dispose)
|
|
if (dispose)
|
|
{
|
|
{
|
|
- _isDisposed = true;
|
|
|
|
|
|
+ // TODO: Dispose stuff
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ _services = null;
|
|
|
|
+ _listingProviders = null;
|
|
|
|
+ _tunerHosts = null;
|
|
|
|
+
|
|
|
|
+ _disposed = true;
|
|
}
|
|
}
|
|
|
|
|
|
private LiveTvServiceInfo[] GetServiceInfos()
|
|
private LiveTvServiceInfo[] GetServiceInfos()
|