| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | using System.Collections.Generic;using System.Threading;using System.Threading.Tasks;using MediaBrowser.Model.Dto;using MediaBrowser.Model.LiveTv;namespace MediaBrowser.Controller.LiveTv;/// <summary>/// Service responsible for managing the <see cref="ITunerHost"/>s./// </summary>public interface ITunerHostManager{    /// <summary>    /// Gets the available <see cref="ITunerHost"/>s.    /// </summary>    IReadOnlyList<ITunerHost> TunerHosts { get; }    /// <summary>    /// Gets the <see cref="NameIdPair"/>s for the available <see cref="ITunerHost"/>s.    /// </summary>    /// <returns>The <see cref="NameIdPair"/>s.</returns>    IEnumerable<NameIdPair> GetTunerHostTypes();    /// <summary>    /// Saves the tuner host.    /// </summary>    /// <param name="info">Turner host to save.</param>    /// <param name="dataSourceChanged">Option to specify that data source has changed.</param>    /// <returns>Tuner host information wrapped in a task.</returns>    Task<TunerHostInfo> SaveTunerHost(TunerHostInfo info, bool dataSourceChanged = true);    /// <summary>    /// Discovers the available tuners.    /// </summary>    /// <param name="newDevicesOnly">A value indicating whether to only return new devices.</param>    /// <returns>The <see cref="TunerHostInfo"/>s.</returns>    IAsyncEnumerable<TunerHostInfo> DiscoverTuners(bool newDevicesOnly);    /// <summary>    /// Scans for tuner devices that have changed URLs.    /// </summary>    /// <param name="cancellationToken">The <see cref="CancellationToken"/> to use.</param>    /// <returns>A task that represents the scanning operation.</returns>    Task ScanForTunerDeviceChanges(CancellationToken cancellationToken);}
 |