diff options
Diffstat (limited to 'MediaBrowser.Model')
| -rw-r--r-- | MediaBrowser.Model/ApiClient/ConnectionResult.cs | 23 | ||||
| -rw-r--r-- | MediaBrowser.Model/ApiClient/IApiClient.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Model/ApiClient/IConnectionManager.cs | 62 | ||||
| -rw-r--r-- | MediaBrowser.Model/ApiClient/ServerInfo.cs | 23 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dto/BaseItemDto.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Model/MediaBrowser.Model.csproj | 3 |
6 files changed, 125 insertions, 2 deletions
diff --git a/MediaBrowser.Model/ApiClient/ConnectionResult.cs b/MediaBrowser.Model/ApiClient/ConnectionResult.cs new file mode 100644 index 000000000..12f89d930 --- /dev/null +++ b/MediaBrowser.Model/ApiClient/ConnectionResult.cs @@ -0,0 +1,23 @@ + +namespace MediaBrowser.Model.ApiClient +{ + public class ConnectionResult + { + public ConnectionState State { get; set; } + public ServerInfo ServerInfo { get; set; } + public IApiClient ApiClient { get; set; } + } + + public enum ConnectionState + { + Unavailable = 1, + ServerSignIn = 2, + SignedIn = 3 + } + + public enum ConnectionMode + { + Local = 1, + Remote = 2 + } +} diff --git a/MediaBrowser.Model/ApiClient/IApiClient.cs b/MediaBrowser.Model/ApiClient/IApiClient.cs index 8b7681c84..3efdea70d 100644 --- a/MediaBrowser.Model/ApiClient/IApiClient.cs +++ b/MediaBrowser.Model/ApiClient/IApiClient.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.Model.ApiClient /// <summary> /// Interface IApiClient /// </summary> - public interface IApiClient : IDisposable + public interface IApiClient : IServerEvents, IDisposable { /// <summary> /// Occurs when [HTTP response received]. @@ -1288,5 +1288,17 @@ namespace MediaBrowser.Model.ApiClient /// <exception cref="ArgumentNullException">options</exception> [Obsolete] string GetHlsVideoStreamUrl(VideoStreamOptions options); + + /// <summary> + /// Sends the context message asynchronous. + /// </summary> + /// <param name="itemType">Type of the item.</param> + /// <param name="itemId">The item identifier.</param> + /// <param name="itemName">Name of the item.</param> + /// <param name="context">The context.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task.</returns> + Task SendContextMessageAsync(string itemType, string itemId, string itemName, string context, + CancellationToken cancellationToken); } }
\ No newline at end of file diff --git a/MediaBrowser.Model/ApiClient/IConnectionManager.cs b/MediaBrowser.Model/ApiClient/IConnectionManager.cs new file mode 100644 index 000000000..6a2d5c8cf --- /dev/null +++ b/MediaBrowser.Model/ApiClient/IConnectionManager.cs @@ -0,0 +1,62 @@ +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Events; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace MediaBrowser.Model.ApiClient +{ + public interface IConnectionManager + { + /// <summary> + /// Occurs when [connected]. + /// </summary> + event EventHandler<GenericEventArgs<ConnectionResult>> Connected; + + /// <summary> + /// Gets the API client. + /// </summary> + /// <param name="item">The item.</param> + /// <returns>MediaBrowser.Model.ApiClient.IApiClient.</returns> + IApiClient GetApiClient(BaseItemDto item); + + /// <summary> + /// Connects the specified cancellation token. + /// </summary> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task<ConnectionResult>.</returns> + Task<ConnectionResult> Connect(CancellationToken cancellationToken); + + /// <summary> + /// Connects the specified server. + /// </summary> + /// <param name="server">The server.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task<ConnectionResult>.</returns> + Task<ConnectionResult> Connect(ServerInfo server, CancellationToken cancellationToken); + + /// <summary> + /// Connects the specified server. + /// </summary> + /// <param name="address">The address.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task<ConnectionResult>.</returns> + Task<ConnectionResult> Connect(string address, CancellationToken cancellationToken); + + /// <summary> + /// Logouts this instance. + /// </summary> + /// <returns>Task<ConnectionResult>.</returns> + Task<ConnectionResult> Logout(); + + /// <summary> + /// Authenticates the specified server. + /// </summary> + /// <param name="server">The server.</param> + /// <param name="username">The username.</param> + /// <param name="hash">The hash.</param> + /// <param name="rememberLogin">if set to <c>true</c> [remember login].</param> + /// <returns>Task.</returns> + Task Authenticate(ServerInfo server, string username, byte[] hash, bool rememberLogin); + } +} diff --git a/MediaBrowser.Model/ApiClient/ServerInfo.cs b/MediaBrowser.Model/ApiClient/ServerInfo.cs new file mode 100644 index 000000000..966263726 --- /dev/null +++ b/MediaBrowser.Model/ApiClient/ServerInfo.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; + +namespace MediaBrowser.Model.ApiClient +{ + public class ServerInfo + { + public String Name { get; set; } + public String Id { get; set; } + public String LocalAddress { get; set; } + public String RemoteAddress { get; set; } + public String UserId { get; set; } + public String AccessToken { get; set; } + public List<string> MacAddresses { get; set; } + + public ServerInfo() + { + MacAddresses = new List<string>(); + + LocalAddress = "http://localhost:8096"; + } + } +} diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs index 6273ce87f..e51edae1b 100644 --- a/MediaBrowser.Model/Dto/BaseItemDto.cs +++ b/MediaBrowser.Model/Dto/BaseItemDto.cs @@ -29,7 +29,7 @@ namespace MediaBrowser.Model.Dto /// </summary> /// <value>The id.</value> public string Id { get; set; } - + /// <summary> /// Gets or sets the playlist item identifier. /// </summary> diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index 105504121..484b0969e 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -60,12 +60,15 @@ <Link>Properties\SharedVersion.cs</Link> </Compile> <Compile Include="Activity\ActivityLogEntry.cs" /> + <Compile Include="ApiClient\ConnectionResult.cs" /> <Compile Include="ApiClient\HttpResponseEventArgs.cs" /> <Compile Include="ApiClient\IApiClient.cs" /> <Compile Include="ApiClient\ApiClientExtensions.cs" /> + <Compile Include="ApiClient\IConnectionManager.cs" /> <Compile Include="ApiClient\IServerEvents.cs" /> <Compile Include="ApiClient\GeneralCommandEventArgs.cs" /> <Compile Include="ApiClient\ServerDiscoveryInfo.cs" /> + <Compile Include="ApiClient\ServerInfo.cs" /> <Compile Include="ApiClient\SessionUpdatesEventArgs.cs" /> <Compile Include="Branding\BrandingOptions.cs" /> <Compile Include="Channels\ChannelFeatures.cs" /> |
