From a86b71899ec52c44ddc6c3018e8cc5e9d7ff4d62 Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Thu, 27 Dec 2018 18:27:57 -0500 Subject: Add GPL modules --- MediaBrowser.Model/Session/BrowseRequest.cs | 27 +++++ MediaBrowser.Model/Session/ClientCapabilities.cs | 33 ++++++ MediaBrowser.Model/Session/GeneralCommand.cs | 19 ++++ MediaBrowser.Model/Session/GeneralCommandType.cs | 46 ++++++++ MediaBrowser.Model/Session/MessageCommand.cs | 12 +++ MediaBrowser.Model/Session/PlayCommand.cs | 29 +++++ MediaBrowser.Model/Session/PlayMethod.cs | 9 ++ MediaBrowser.Model/Session/PlayRequest.cs | 43 ++++++++ MediaBrowser.Model/Session/PlaybackProgressInfo.cs | 119 +++++++++++++++++++++ MediaBrowser.Model/Session/PlaybackStartInfo.cs | 10 ++ MediaBrowser.Model/Session/PlaybackStopInfo.cs | 57 ++++++++++ MediaBrowser.Model/Session/PlayerStateInfo.cs | 65 +++++++++++ MediaBrowser.Model/Session/PlaystateCommand.cs | 43 ++++++++ MediaBrowser.Model/Session/PlaystateRequest.cs | 15 +++ MediaBrowser.Model/Session/SessionInfoDto.cs | 117 ++++++++++++++++++++ MediaBrowser.Model/Session/SessionUserInfo.cs | 21 ++++ MediaBrowser.Model/Session/TranscodingInfo.cs | 55 ++++++++++ MediaBrowser.Model/Session/UserDataChangeInfo.cs | 23 ++++ 18 files changed, 743 insertions(+) create mode 100644 MediaBrowser.Model/Session/BrowseRequest.cs create mode 100644 MediaBrowser.Model/Session/ClientCapabilities.cs create mode 100644 MediaBrowser.Model/Session/GeneralCommand.cs create mode 100644 MediaBrowser.Model/Session/GeneralCommandType.cs create mode 100644 MediaBrowser.Model/Session/MessageCommand.cs create mode 100644 MediaBrowser.Model/Session/PlayCommand.cs create mode 100644 MediaBrowser.Model/Session/PlayMethod.cs create mode 100644 MediaBrowser.Model/Session/PlayRequest.cs create mode 100644 MediaBrowser.Model/Session/PlaybackProgressInfo.cs create mode 100644 MediaBrowser.Model/Session/PlaybackStartInfo.cs create mode 100644 MediaBrowser.Model/Session/PlaybackStopInfo.cs create mode 100644 MediaBrowser.Model/Session/PlayerStateInfo.cs create mode 100644 MediaBrowser.Model/Session/PlaystateCommand.cs create mode 100644 MediaBrowser.Model/Session/PlaystateRequest.cs create mode 100644 MediaBrowser.Model/Session/SessionInfoDto.cs create mode 100644 MediaBrowser.Model/Session/SessionUserInfo.cs create mode 100644 MediaBrowser.Model/Session/TranscodingInfo.cs create mode 100644 MediaBrowser.Model/Session/UserDataChangeInfo.cs (limited to 'MediaBrowser.Model/Session') diff --git a/MediaBrowser.Model/Session/BrowseRequest.cs b/MediaBrowser.Model/Session/BrowseRequest.cs new file mode 100644 index 0000000000..0a13c05490 --- /dev/null +++ b/MediaBrowser.Model/Session/BrowseRequest.cs @@ -0,0 +1,27 @@ + +namespace MediaBrowser.Model.Session +{ + /// + /// Class BrowseRequest + /// + public class BrowseRequest + { + /// + /// Artist, Genre, Studio, Person, or any kind of BaseItem + /// + /// The type of the item. + public string ItemType { get; set; } + + /// + /// Gets or sets the item id. + /// + /// The item id. + public string ItemId { get; set; } + + /// + /// Gets or sets the name of the item. + /// + /// The name of the item. + public string ItemName { get; set; } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/ClientCapabilities.cs b/MediaBrowser.Model/Session/ClientCapabilities.cs new file mode 100644 index 0000000000..0a780b9103 --- /dev/null +++ b/MediaBrowser.Model/Session/ClientCapabilities.cs @@ -0,0 +1,33 @@ +using MediaBrowser.Model.Dlna; +using System; + +namespace MediaBrowser.Model.Session +{ + public class ClientCapabilities + { + public string[] PlayableMediaTypes { get; set; } + + public string[] SupportedCommands { get; set; } + + public bool SupportsMediaControl { get; set; } + public bool SupportsContentUploading { get; set; } + public string MessageCallbackUrl { get; set; } + public string PushToken { get; set; } + public string PushTokenType { get; set; } + + public bool SupportsPersistentIdentifier { get; set; } + public bool SupportsSync { get; set; } + + public DeviceProfile DeviceProfile { get; set; } + + public string AppStoreUrl { get; set; } + public string IconUrl { get; set; } + + public ClientCapabilities() + { + PlayableMediaTypes = new string[] {}; + SupportedCommands = new string[] {}; + SupportsPersistentIdentifier = true; + } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/GeneralCommand.cs b/MediaBrowser.Model/Session/GeneralCommand.cs new file mode 100644 index 0000000000..5cfe3e67b9 --- /dev/null +++ b/MediaBrowser.Model/Session/GeneralCommand.cs @@ -0,0 +1,19 @@ +using System.Collections.Generic; +using System; + +namespace MediaBrowser.Model.Session +{ + public class GeneralCommand + { + public string Name { get; set; } + + public Guid ControllingUserId { get; set; } + + public Dictionary Arguments { get; set; } + + public GeneralCommand() + { + Arguments = new Dictionary(); + } + } +} diff --git a/MediaBrowser.Model/Session/GeneralCommandType.cs b/MediaBrowser.Model/Session/GeneralCommandType.cs new file mode 100644 index 0000000000..9044dc3ec2 --- /dev/null +++ b/MediaBrowser.Model/Session/GeneralCommandType.cs @@ -0,0 +1,46 @@ +namespace MediaBrowser.Model.Session +{ + /// + /// This exists simply to identify a set of known commands. + /// + public enum GeneralCommandType + { + MoveUp = 0, + MoveDown = 1, + MoveLeft = 2, + MoveRight = 3, + PageUp = 4, + PageDown = 5, + PreviousLetter = 6, + NextLetter = 7, + ToggleOsd = 8, + ToggleContextMenu = 9, + Select = 10, + Back = 11, + TakeScreenshot = 12, + SendKey = 13, + SendString = 14, + GoHome = 15, + GoToSettings = 16, + VolumeUp = 17, + VolumeDown = 18, + Mute = 19, + Unmute = 20, + ToggleMute = 21, + SetVolume = 22, + SetAudioStreamIndex = 23, + SetSubtitleStreamIndex = 24, + ToggleFullscreen = 25, + DisplayContent = 26, + GoToSearch = 27, + DisplayMessage = 28, + SetRepeatMode = 29, + ChannelUp = 30, + ChannelDown = 31, + SetMaxStreamingBitrate = 31, + Guide = 32, + ToggleStats = 33, + PlayMediaSource = 34, + PlayTrailers = 35 + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/MessageCommand.cs b/MediaBrowser.Model/Session/MessageCommand.cs new file mode 100644 index 0000000000..b028765ed2 --- /dev/null +++ b/MediaBrowser.Model/Session/MessageCommand.cs @@ -0,0 +1,12 @@ + +namespace MediaBrowser.Model.Session +{ + public class MessageCommand + { + public string Header { get; set; } + + public string Text { get; set; } + + public long? TimeoutMs { get; set; } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlayCommand.cs b/MediaBrowser.Model/Session/PlayCommand.cs new file mode 100644 index 0000000000..3a5a951d70 --- /dev/null +++ b/MediaBrowser.Model/Session/PlayCommand.cs @@ -0,0 +1,29 @@ +namespace MediaBrowser.Model.Session +{ + /// + /// Enum PlayCommand + /// + public enum PlayCommand + { + /// + /// The play now + /// + PlayNow = 0, + /// + /// The play next + /// + PlayNext = 1, + /// + /// The play last + /// + PlayLast = 2, + /// + /// The play instant mix + /// + PlayInstantMix = 3, + /// + /// The play shuffle + /// + PlayShuffle = 4 + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlayMethod.cs b/MediaBrowser.Model/Session/PlayMethod.cs new file mode 100644 index 0000000000..87b7286272 --- /dev/null +++ b/MediaBrowser.Model/Session/PlayMethod.cs @@ -0,0 +1,9 @@ +namespace MediaBrowser.Model.Session +{ + public enum PlayMethod + { + Transcode = 0, + DirectStream = 1, + DirectPlay = 2 + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlayRequest.cs b/MediaBrowser.Model/Session/PlayRequest.cs new file mode 100644 index 0000000000..2ee489f961 --- /dev/null +++ b/MediaBrowser.Model/Session/PlayRequest.cs @@ -0,0 +1,43 @@ +using MediaBrowser.Model.Services; +using System; + +namespace MediaBrowser.Model.Session +{ + /// + /// Class PlayRequest + /// + public class PlayRequest + { + /// + /// Gets or sets the item ids. + /// + /// The item ids. + [ApiMember(Name = "ItemIds", Description = "The ids of the items to play, comma delimited", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST", AllowMultiple = true)] + public Guid[] ItemIds { get; set; } + + /// + /// Gets or sets the start position ticks that the first item should be played at + /// + /// The start position ticks. + [ApiMember(Name = "StartPositionTicks", Description = "The starting position of the first item.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "POST")] + public long? StartPositionTicks { get; set; } + + /// + /// Gets or sets the play command. + /// + /// The play command. + [ApiMember(Name = "PlayCommand", Description = "The type of play command to issue (PlayNow, PlayNext, PlayLast). Clients who have not yet implemented play next and play last may play now.", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "POST")] + public PlayCommand PlayCommand { get; set; } + + /// + /// Gets or sets the controlling user identifier. + /// + /// The controlling user identifier. + public Guid ControllingUserId { get; set; } + + public int? SubtitleStreamIndex { get; set; } + public int? AudioStreamIndex { get; set; } + public string MediaSourceId { get; set; } + public int? StartIndex { get; set; } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlaybackProgressInfo.cs b/MediaBrowser.Model/Session/PlaybackProgressInfo.cs new file mode 100644 index 0000000000..ce6b2875ea --- /dev/null +++ b/MediaBrowser.Model/Session/PlaybackProgressInfo.cs @@ -0,0 +1,119 @@ +using MediaBrowser.Model.Dto; +using System; + +namespace MediaBrowser.Model.Session +{ + /// + /// Class PlaybackProgressInfo. + /// + public class PlaybackProgressInfo + { + /// + /// Gets or sets a value indicating whether this instance can seek. + /// + /// true if this instance can seek; otherwise, false. + public bool CanSeek { get; set; } + + /// + /// Gets or sets the item. + /// + /// The item. + public BaseItemDto Item { get; set; } + + /// + /// Gets or sets the item identifier. + /// + /// The item identifier. + public Guid ItemId { get; set; } + + /// + /// Gets or sets the session id. + /// + /// The session id. + public string SessionId { get; set; } + + /// + /// Gets or sets the media version identifier. + /// + /// The media version identifier. + public string MediaSourceId { get; set; } + + /// + /// Gets or sets the index of the audio stream. + /// + /// The index of the audio stream. + public int? AudioStreamIndex { get; set; } + + /// + /// Gets or sets the index of the subtitle stream. + /// + /// The index of the subtitle stream. + public int? SubtitleStreamIndex { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is paused. + /// + /// true if this instance is paused; otherwise, false. + public bool IsPaused { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is muted. + /// + /// true if this instance is muted; otherwise, false. + public bool IsMuted { get; set; } + + /// + /// Gets or sets the position ticks. + /// + /// The position ticks. + public long? PositionTicks { get; set; } + + public long? PlaybackStartTimeTicks { get; set; } + + /// + /// Gets or sets the volume level. + /// + /// The volume level. + public int? VolumeLevel { get; set; } + + public int? Brightness { get; set; } + + public string AspectRatio { get; set; } + + /// + /// Gets or sets the play method. + /// + /// The play method. + public PlayMethod PlayMethod { get; set; } + /// + /// Gets or sets the live stream identifier. + /// + /// The live stream identifier. + public string LiveStreamId { get; set; } + /// + /// Gets or sets the play session identifier. + /// + /// The play session identifier. + public string PlaySessionId { get; set; } + /// + /// Gets or sets the repeat mode. + /// + /// The repeat mode. + public RepeatMode RepeatMode { get; set; } + + public QueueItem[] NowPlayingQueue { get; set; } + public string PlaylistItemId { get; set; } + } + + public enum RepeatMode + { + RepeatNone = 0, + RepeatAll = 1, + RepeatOne = 2 + } + + public class QueueItem { + public Guid Id { get; set; } + public string PlaylistItemId { get; set; } + } +} diff --git a/MediaBrowser.Model/Session/PlaybackStartInfo.cs b/MediaBrowser.Model/Session/PlaybackStartInfo.cs new file mode 100644 index 0000000000..f6f496e4ea --- /dev/null +++ b/MediaBrowser.Model/Session/PlaybackStartInfo.cs @@ -0,0 +1,10 @@ + +namespace MediaBrowser.Model.Session +{ + /// + /// Class PlaybackStartInfo. + /// + public class PlaybackStartInfo : PlaybackProgressInfo + { + } +} diff --git a/MediaBrowser.Model/Session/PlaybackStopInfo.cs b/MediaBrowser.Model/Session/PlaybackStopInfo.cs new file mode 100644 index 0000000000..6f3351eeff --- /dev/null +++ b/MediaBrowser.Model/Session/PlaybackStopInfo.cs @@ -0,0 +1,57 @@ +using MediaBrowser.Model.Dto; +using System; + +namespace MediaBrowser.Model.Session +{ + /// + /// Class PlaybackStopInfo. + /// + public class PlaybackStopInfo + { + /// + /// Gets or sets the item. + /// + /// The item. + public BaseItemDto Item { get; set; } + /// + /// Gets or sets the item identifier. + /// + /// The item identifier. + public Guid ItemId { get; set; } + /// + /// Gets or sets the session id. + /// + /// The session id. + public string SessionId { get; set; } + /// + /// Gets or sets the media version identifier. + /// + /// The media version identifier. + public string MediaSourceId { get; set; } + /// + /// Gets or sets the position ticks. + /// + /// The position ticks. + public long? PositionTicks { get; set; } + /// + /// Gets or sets the live stream identifier. + /// + /// The live stream identifier. + public string LiveStreamId { get; set; } + /// + /// Gets or sets the play session identifier. + /// + /// The play session identifier. + public string PlaySessionId { get; set; } + /// + /// Gets or sets a value indicating whether this is failed. + /// + /// true if failed; otherwise, false. + public bool Failed { get; set; } + + public string NextMediaType { get; set; } + + public string PlaylistItemId { get; set; } + public QueueItem[] NowPlayingQueue { get; set; } + } +} diff --git a/MediaBrowser.Model/Session/PlayerStateInfo.cs b/MediaBrowser.Model/Session/PlayerStateInfo.cs new file mode 100644 index 0000000000..f78842e29b --- /dev/null +++ b/MediaBrowser.Model/Session/PlayerStateInfo.cs @@ -0,0 +1,65 @@ +namespace MediaBrowser.Model.Session +{ + public class PlayerStateInfo + { + /// + /// Gets or sets the now playing position ticks. + /// + /// The now playing position ticks. + public long? PositionTicks { get; set; } + + /// + /// Gets or sets a value indicating whether this instance can seek. + /// + /// true if this instance can seek; otherwise, false. + public bool CanSeek { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is paused. + /// + /// true if this instance is paused; otherwise, false. + public bool IsPaused { get; set; } + + /// + /// Gets or sets a value indicating whether this instance is muted. + /// + /// true if this instance is muted; otherwise, false. + public bool IsMuted { get; set; } + + /// + /// Gets or sets the volume level. + /// + /// The volume level. + public int? VolumeLevel { get; set; } + + /// + /// Gets or sets the index of the now playing audio stream. + /// + /// The index of the now playing audio stream. + public int? AudioStreamIndex { get; set; } + + /// + /// Gets or sets the index of the now playing subtitle stream. + /// + /// The index of the now playing subtitle stream. + public int? SubtitleStreamIndex { get; set; } + + /// + /// Gets or sets the now playing media version identifier. + /// + /// The now playing media version identifier. + public string MediaSourceId { get; set; } + + /// + /// Gets or sets the play method. + /// + /// The play method. + public PlayMethod? PlayMethod { get; set; } + + /// + /// Gets or sets the repeat mode. + /// + /// The repeat mode. + public RepeatMode RepeatMode { get; set; } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlaystateCommand.cs b/MediaBrowser.Model/Session/PlaystateCommand.cs new file mode 100644 index 0000000000..3b70d54542 --- /dev/null +++ b/MediaBrowser.Model/Session/PlaystateCommand.cs @@ -0,0 +1,43 @@ + +namespace MediaBrowser.Model.Session +{ + /// + /// Enum PlaystateCommand + /// + public enum PlaystateCommand + { + /// + /// The stop + /// + Stop, + /// + /// The pause + /// + Pause, + /// + /// The unpause + /// + Unpause, + /// + /// The next track + /// + NextTrack, + /// + /// The previous track + /// + PreviousTrack, + /// + /// The seek + /// + Seek, + /// + /// The rewind + /// + Rewind, + /// + /// The fast forward + /// + FastForward, + PlayPause + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/PlaystateRequest.cs b/MediaBrowser.Model/Session/PlaystateRequest.cs new file mode 100644 index 0000000000..8a046b5031 --- /dev/null +++ b/MediaBrowser.Model/Session/PlaystateRequest.cs @@ -0,0 +1,15 @@ +namespace MediaBrowser.Model.Session +{ + public class PlaystateRequest + { + public PlaystateCommand Command { get; set; } + + public long? SeekPositionTicks { get; set; } + + /// + /// Gets or sets the controlling user identifier. + /// + /// The controlling user identifier. + public string ControllingUserId { get; set; } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/SessionInfoDto.cs b/MediaBrowser.Model/Session/SessionInfoDto.cs new file mode 100644 index 0000000000..ca14107df2 --- /dev/null +++ b/MediaBrowser.Model/Session/SessionInfoDto.cs @@ -0,0 +1,117 @@ +using MediaBrowser.Model.Dto; +using System; +using System.Collections.Generic; + +namespace MediaBrowser.Model.Session +{ + public class SessionInfoDto + { + /// + /// Gets or sets the supported commands. + /// + /// The supported commands. + public string[] SupportedCommands { get; set; } + + /// + /// Gets or sets the playable media types. + /// + /// The playable media types. + public string[] PlayableMediaTypes { get; set; } + + /// + /// Gets or sets the id. + /// + /// The id. + public string Id { get; set; } + + public string ServerId { get; set; } + + /// + /// Gets or sets the user id. + /// + /// The user id. + public string UserId { get; set; } + + /// + /// Gets or sets the user primary image tag. + /// + /// The user primary image tag. + public string UserPrimaryImageTag { get; set; } + + public string RemoteEndPoint { get; set; } + + /// + /// Gets or sets the name of the user. + /// + /// The name of the user. + public string UserName { get; set; } + + /// + /// Gets or sets the additional users present. + /// + /// The additional users present. + public SessionUserInfo[] AdditionalUsers { get; set; } + + /// + /// Gets or sets the application version. + /// + /// The application version. + public string ApplicationVersion { get; set; } + + /// + /// Gets or sets the type of the client. + /// + /// The type of the client. + public string Client { get; set; } + + /// + /// Gets or sets the last activity date. + /// + /// The last activity date. + public DateTime LastActivityDate { get; set; } + + /// + /// Gets or sets the name of the device. + /// + /// The name of the device. + public string DeviceName { get; set; } + + public string DeviceType { get; set; } + + /// + /// Gets or sets the now playing item. + /// + /// The now playing item. + public BaseItemDto NowPlayingItem { get; set; } + + /// + /// Gets or sets the device id. + /// + /// The device id. + public string DeviceId { get; set; } + + /// + /// Gets or sets the application icon URL. + /// + /// The application icon URL. + public string AppIconUrl { get; set; } + + /// + /// Gets or sets a value indicating whether [supports remote control]. + /// + /// true if [supports remote control]; otherwise, false. + public bool SupportsRemoteControl { get; set; } + + public PlayerStateInfo PlayState { get; set; } + + public TranscodingInfo TranscodingInfo { get; set; } + + public SessionInfoDto() + { + AdditionalUsers = new SessionUserInfo[] { }; + + PlayableMediaTypes = new string[] {}; + SupportedCommands = new string[] {}; + } + } +} diff --git a/MediaBrowser.Model/Session/SessionUserInfo.cs b/MediaBrowser.Model/Session/SessionUserInfo.cs new file mode 100644 index 0000000000..7746bc2d68 --- /dev/null +++ b/MediaBrowser.Model/Session/SessionUserInfo.cs @@ -0,0 +1,21 @@ +using System; + +namespace MediaBrowser.Model.Session +{ + /// + /// Class SessionUserInfo. + /// + public class SessionUserInfo + { + /// + /// Gets or sets the user identifier. + /// + /// The user identifier. + public Guid UserId { get; set; } + /// + /// Gets or sets the name of the user. + /// + /// The name of the user. + public string UserName { get; set; } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/TranscodingInfo.cs b/MediaBrowser.Model/Session/TranscodingInfo.cs new file mode 100644 index 0000000000..ed86d2358a --- /dev/null +++ b/MediaBrowser.Model/Session/TranscodingInfo.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; + +namespace MediaBrowser.Model.Session +{ + public class TranscodingInfo + { + public string AudioCodec { get; set; } + public string VideoCodec { get; set; } + public string Container { get; set; } + public bool IsVideoDirect { get; set; } + public bool IsAudioDirect { get; set; } + public int? Bitrate { get; set; } + + public float? Framerate { get; set; } + public double? CompletionPercentage { get; set; } + + public int? Width { get; set; } + public int? Height { get; set; } + public int? AudioChannels { get; set; } + + public TranscodeReason[] TranscodeReasons { get; set; } + + public TranscodingInfo() + { + TranscodeReasons = new TranscodeReason[] { }; + } + } + + public enum TranscodeReason + { + ContainerNotSupported = 0, + VideoCodecNotSupported = 1, + AudioCodecNotSupported = 2, + ContainerBitrateExceedsLimit = 3, + AudioBitrateNotSupported = 4, + AudioChannelsNotSupported = 5, + VideoResolutionNotSupported = 6, + UnknownVideoStreamInfo = 7, + UnknownAudioStreamInfo = 8, + AudioProfileNotSupported = 9, + AudioSampleRateNotSupported = 10, + AnamorphicVideoNotSupported = 11, + InterlacedVideoNotSupported = 12, + SecondaryAudioNotSupported = 13, + RefFramesNotSupported = 14, + VideoBitDepthNotSupported = 15, + VideoBitrateNotSupported = 16, + VideoFramerateNotSupported = 17, + VideoLevelNotSupported = 18, + VideoProfileNotSupported = 19, + AudioBitDepthNotSupported = 20, + SubtitleCodecNotSupported = 21, + DirectPlayError = 22 + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Session/UserDataChangeInfo.cs b/MediaBrowser.Model/Session/UserDataChangeInfo.cs new file mode 100644 index 0000000000..c6b03200d2 --- /dev/null +++ b/MediaBrowser.Model/Session/UserDataChangeInfo.cs @@ -0,0 +1,23 @@ +using MediaBrowser.Model.Dto; +using System.Collections.Generic; + +namespace MediaBrowser.Model.Session +{ + /// + /// Class UserDataChangeInfo + /// + public class UserDataChangeInfo + { + /// + /// Gets or sets the user id. + /// + /// The user id. + public string UserId { get; set; } + + /// + /// Gets or sets the user data list. + /// + /// The user data list. + public UserItemDataDto[] UserDataList { get; set; } + } +} -- cgit v1.2.3