aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-13 16:14:53 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-10-13 16:14:53 -0400
commitab3c26c5647a56e95d0f5229f07b1a1b45812ff8 (patch)
treebbcaf5db256364f19cdb4f7c18eb82171dc4183b /MediaBrowser.Model
parent8a15ee6ab4149cf59f8ff2724e3e415d34557da1 (diff)
update connect
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/ApiClient/ConnectionResult.cs6
-rw-r--r--MediaBrowser.Model/ApiClient/ConnectionState.cs3
-rw-r--r--MediaBrowser.Model/ApiClient/IApiClient.cs7
-rw-r--r--MediaBrowser.Model/ApiClient/IClientWebSocket.cs54
-rw-r--r--MediaBrowser.Model/ApiClient/IConnectionManager.cs12
-rw-r--r--MediaBrowser.Model/ApiClient/ServerInfo.cs1
-rw-r--r--MediaBrowser.Model/Connect/ConnectAuthorization.cs11
-rw-r--r--MediaBrowser.Model/Connect/UserLinkType.cs4
-rw-r--r--MediaBrowser.Model/Devices/DeviceInfo.cs28
-rw-r--r--MediaBrowser.Model/Devices/DeviceOptions.cs17
-rw-r--r--MediaBrowser.Model/Dto/BaseItemDto.cs1
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj3
12 files changed, 138 insertions, 9 deletions
diff --git a/MediaBrowser.Model/ApiClient/ConnectionResult.cs b/MediaBrowser.Model/ApiClient/ConnectionResult.cs
index 0b6c0bfe9..86c94c3d5 100644
--- a/MediaBrowser.Model/ApiClient/ConnectionResult.cs
+++ b/MediaBrowser.Model/ApiClient/ConnectionResult.cs
@@ -1,15 +1,17 @@
-
+using System.Collections.Generic;
+
namespace MediaBrowser.Model.ApiClient
{
public class ConnectionResult
{
public ConnectionState State { get; set; }
- public ServerInfo ServerInfo { get; set; }
+ public List<ServerInfo> Servers { get; set; }
public IApiClient ApiClient { get; set; }
public ConnectionResult()
{
State = ConnectionState.Unavailable;
+ Servers = new List<ServerInfo>();
}
}
}
diff --git a/MediaBrowser.Model/ApiClient/ConnectionState.cs b/MediaBrowser.Model/ApiClient/ConnectionState.cs
index 9374c77f6..63e156eb1 100644
--- a/MediaBrowser.Model/ApiClient/ConnectionState.cs
+++ b/MediaBrowser.Model/ApiClient/ConnectionState.cs
@@ -4,6 +4,7 @@ namespace MediaBrowser.Model.ApiClient
{
Unavailable = 1,
ServerSignIn = 2,
- SignedIn = 3
+ SignedIn = 3,
+ ServerSelection = 4
}
} \ No newline at end of file
diff --git a/MediaBrowser.Model/ApiClient/IApiClient.cs b/MediaBrowser.Model/ApiClient/IApiClient.cs
index 1d2145b3a..13088945a 100644
--- a/MediaBrowser.Model/ApiClient/IApiClient.cs
+++ b/MediaBrowser.Model/ApiClient/IApiClient.cs
@@ -1350,5 +1350,12 @@ namespace MediaBrowser.Model.ApiClient
/// </summary>
/// <returns>Task&lt;DevicesOptions&gt;.</returns>
Task<DevicesOptions> GetDevicesOptions();
+
+ /// <summary>
+ /// Opens the web socket.
+ /// </summary>
+ /// <param name="webSocketFactory">The web socket factory.</param>
+ /// <param name="keepAliveTimerMs">The keep alive timer ms.</param>
+ void OpenWebSocket(Func<IClientWebSocket> webSocketFactory, int keepAliveTimerMs = 60000);
}
} \ No newline at end of file
diff --git a/MediaBrowser.Model/ApiClient/IClientWebSocket.cs b/MediaBrowser.Model/ApiClient/IClientWebSocket.cs
new file mode 100644
index 000000000..ca3a761d4
--- /dev/null
+++ b/MediaBrowser.Model/ApiClient/IClientWebSocket.cs
@@ -0,0 +1,54 @@
+using MediaBrowser.Model.Net;
+using System;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace MediaBrowser.Model.ApiClient
+{
+ /// <summary>
+ /// Interface IClientWebSocket
+ /// </summary>
+ public interface IClientWebSocket : IDisposable
+ {
+ /// <summary>
+ /// Occurs when [closed].
+ /// </summary>
+ event EventHandler Closed;
+
+ /// <summary>
+ /// Gets or sets the state.
+ /// </summary>
+ /// <value>The state.</value>
+ WebSocketState State { get; }
+
+ /// <summary>
+ /// Connects the async.
+ /// </summary>
+ /// <param name="url">The URL.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ Task ConnectAsync(string url, CancellationToken cancellationToken);
+
+ /// <summary>
+ /// Gets or sets the receive action.
+ /// </summary>
+ /// <value>The receive action.</value>
+ Action<byte[]> OnReceiveBytes { get; set; }
+
+ /// <summary>
+ /// Gets or sets the on receive.
+ /// </summary>
+ /// <value>The on receive.</value>
+ Action<string> OnReceive { get; set; }
+
+ /// <summary>
+ /// Sends the async.
+ /// </summary>
+ /// <param name="bytes">The bytes.</param>
+ /// <param name="type">The type.</param>
+ /// <param name="endOfMessage">if set to <c>true</c> [end of message].</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ Task SendAsync(byte[] bytes, WebSocketMessageType type, bool endOfMessage, CancellationToken cancellationToken);
+ }
+}
diff --git a/MediaBrowser.Model/ApiClient/IConnectionManager.cs b/MediaBrowser.Model/ApiClient/IConnectionManager.cs
index 03d3472d2..d76ef67d2 100644
--- a/MediaBrowser.Model/ApiClient/IConnectionManager.cs
+++ b/MediaBrowser.Model/ApiClient/IConnectionManager.cs
@@ -53,5 +53,17 @@ namespace MediaBrowser.Model.ApiClient
/// </summary>
/// <returns>Task&lt;ConnectionResult&gt;.</returns>
Task<ConnectionResult> Logout();
+
+ /// <summary>
+ /// Logins to connect.
+ /// </summary>
+ /// <returns>Task.</returns>
+ Task LoginToConnect(string username, string password);
+
+ /// <summary>
+ /// Gets the active api client instance
+ /// </summary>
+ [Obsolete]
+ IApiClient CurrentApiClient { get; }
}
}
diff --git a/MediaBrowser.Model/ApiClient/ServerInfo.cs b/MediaBrowser.Model/ApiClient/ServerInfo.cs
index 0656337ba..af46cc660 100644
--- a/MediaBrowser.Model/ApiClient/ServerInfo.cs
+++ b/MediaBrowser.Model/ApiClient/ServerInfo.cs
@@ -12,6 +12,7 @@ namespace MediaBrowser.Model.ApiClient
public String UserId { get; set; }
public String AccessToken { get; set; }
public List<WakeOnLanInfo> WakeOnLanInfos { get; set; }
+ public DateTime DateLastAccessed { get; set; }
public ServerInfo()
{
diff --git a/MediaBrowser.Model/Connect/ConnectAuthorization.cs b/MediaBrowser.Model/Connect/ConnectAuthorization.cs
new file mode 100644
index 000000000..329d805f1
--- /dev/null
+++ b/MediaBrowser.Model/Connect/ConnectAuthorization.cs
@@ -0,0 +1,11 @@
+
+namespace MediaBrowser.Model.Connect
+{
+ public class ConnectAuthorization
+ {
+ public string ConnectUserId { get; set; }
+ public string UserName { get; set; }
+ public string ImageUrl { get; set; }
+ public string Id { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/Connect/UserLinkType.cs b/MediaBrowser.Model/Connect/UserLinkType.cs
index e8ea15a4e..4ac5bfde1 100644
--- a/MediaBrowser.Model/Connect/UserLinkType.cs
+++ b/MediaBrowser.Model/Connect/UserLinkType.cs
@@ -6,10 +6,10 @@ namespace MediaBrowser.Model.Connect
/// <summary>
/// The linked user
/// </summary>
- LinkedUser = 1,
+ LinkedUser = 0,
/// <summary>
/// The guest
/// </summary>
- Guest = 2
+ Guest = 1
}
}
diff --git a/MediaBrowser.Model/Devices/DeviceInfo.cs b/MediaBrowser.Model/Devices/DeviceInfo.cs
index fce3b02f6..e5efe9f60 100644
--- a/MediaBrowser.Model/Devices/DeviceInfo.cs
+++ b/MediaBrowser.Model/Devices/DeviceInfo.cs
@@ -1,15 +1,35 @@
-using System;
-using MediaBrowser.Model.Session;
+using MediaBrowser.Model.Session;
+using System;
namespace MediaBrowser.Model.Devices
{
public class DeviceInfo
{
/// <summary>
- /// Gets or sets the name.
+ /// Gets or sets the name of the reported.
+ /// </summary>
+ /// <value>The name of the reported.</value>
+ public string ReportedName { get; set; }
+ /// <summary>
+ /// Gets or sets the name of the custom.
+ /// </summary>
+ /// <value>The name of the custom.</value>
+ public string CustomName { get; set; }
+ /// <summary>
+ /// Gets or sets the camera upload path.
+ /// </summary>
+ /// <value>The camera upload path.</value>
+ public string CameraUploadPath { get; set; }
+
+ /// <summary>
+ /// Gets the name.
/// </summary>
/// <value>The name.</value>
- public string Name { get; set; }
+ public string Name
+ {
+ get { return string.IsNullOrEmpty(CustomName) ? ReportedName : CustomName; }
+ }
+
/// <summary>
/// Gets or sets the identifier.
/// </summary>
diff --git a/MediaBrowser.Model/Devices/DeviceOptions.cs b/MediaBrowser.Model/Devices/DeviceOptions.cs
new file mode 100644
index 000000000..2524a2f99
--- /dev/null
+++ b/MediaBrowser.Model/Devices/DeviceOptions.cs
@@ -0,0 +1,17 @@
+
+namespace MediaBrowser.Model.Devices
+{
+ public class DeviceOptions
+ {
+ /// <summary>
+ /// Gets or sets the name of the custom.
+ /// </summary>
+ /// <value>The name of the custom.</value>
+ public string CustomName { get; set; }
+ /// <summary>
+ /// Gets or sets the camera upload path.
+ /// </summary>
+ /// <value>The camera upload path.</value>
+ public string CameraUploadPath { get; set; }
+ }
+}
diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs
index e51edae1b..80fda4bc2 100644
--- a/MediaBrowser.Model/Dto/BaseItemDto.cs
+++ b/MediaBrowser.Model/Dto/BaseItemDto.cs
@@ -232,6 +232,7 @@ namespace MediaBrowser.Model.Dto
/// Gets or sets the recursive unplayed item count.
/// </summary>
/// <value>The recursive unplayed item count.</value>
+ [Obsolete]
public int? RecursiveUnplayedItemCount { get; set; }
/// <summary>
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index e1ce7ecca..fa0c2d466 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -66,6 +66,7 @@
<Compile Include="ApiClient\HttpResponseEventArgs.cs" />
<Compile Include="ApiClient\IApiClient.cs" />
<Compile Include="ApiClient\ApiClientExtensions.cs" />
+ <Compile Include="ApiClient\IClientWebSocket.cs" />
<Compile Include="ApiClient\IConnectionManager.cs" />
<Compile Include="ApiClient\IDevice.cs" />
<Compile Include="ApiClient\IServerEvents.cs" />
@@ -95,7 +96,9 @@
<Compile Include="Configuration\PeopleMetadataOptions.cs" />
<Compile Include="Configuration\XbmcMetadataOptions.cs" />
<Compile Include="Configuration\SubtitlePlaybackMode.cs" />
+ <Compile Include="Connect\ConnectAuthorization.cs" />
<Compile Include="Connect\UserLinkType.cs" />
+ <Compile Include="Devices\DeviceOptions.cs" />
<Compile Include="Devices\LocalFileInfo.cs" />
<Compile Include="Devices\DeviceInfo.cs" />
<Compile Include="Devices\DevicesOptions.cs" />