aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Dlna
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Dlna')
-rw-r--r--MediaBrowser.Dlna/PlayTo/DlnaController.cs50
1 files changed, 27 insertions, 23 deletions
diff --git a/MediaBrowser.Dlna/PlayTo/DlnaController.cs b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
index 830d478297..75667d54e9 100644
--- a/MediaBrowser.Dlna/PlayTo/DlnaController.cs
+++ b/MediaBrowser.Dlna/PlayTo/DlnaController.cs
@@ -1,5 +1,4 @@
-using System.Globalization;
-using MediaBrowser.Common.Net;
+using MediaBrowser.Common.Net;
using MediaBrowser.Controller;
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Entities;
@@ -13,6 +12,7 @@ using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Session;
using System;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
@@ -91,9 +91,9 @@ namespace MediaBrowser.Dlna.PlayTo
{
_playbackStarted = false;
- await _sessionManager.OnPlaybackStopped(new Controller.Session.PlaybackStopInfo
+ await _sessionManager.OnPlaybackStopped(new PlaybackStopInfo
{
- Item = _currentItem,
+ ItemId = _currentItem.Id.ToString("N"),
SessionId = _session.Id,
PositionTicks = _device.Position.Ticks
@@ -169,20 +169,23 @@ namespace MediaBrowser.Dlna.PlayTo
return;
var playlistItem = Playlist.FirstOrDefault(p => p.PlayState == 1);
-
+
if (playlistItem != null)
{
if (!_playbackStarted)
{
- await _sessionManager.OnPlaybackStart(new PlaybackInfo
+ await _sessionManager.OnPlaybackStart(new PlaybackStartInfo
{
- Item = _currentItem,
+ ItemId = _currentItem.Id.ToString("N"),
SessionId = _session.Id,
CanSeek = true,
QueueableMediaTypes = new List<string> { _currentItem.MediaType },
MediaSourceId = playlistItem.MediaSourceId,
AudioStreamIndex = playlistItem.AudioStreamIndex,
- SubtitleStreamIndex = playlistItem.SubtitleStreamIndex
+ SubtitleStreamIndex = playlistItem.SubtitleStreamIndex,
+ IsMuted = _device.IsMuted,
+ IsPaused = _device.IsPaused,
+ VolumeLevel = _device.Volume
}).ConfigureAwait(false);
@@ -198,9 +201,9 @@ namespace MediaBrowser.Dlna.PlayTo
ticks += playlistItem.StartPositionTicks;
}
- await _sessionManager.OnPlaybackProgress(new Controller.Session.PlaybackProgressInfo
+ await _sessionManager.OnPlaybackProgress(new PlaybackProgressInfo
{
- Item = _currentItem,
+ ItemId = _currentItem.Id.ToString("N"),
SessionId = _session.Id,
PositionTicks = ticks,
IsMuted = _device.IsMuted,
@@ -208,7 +211,8 @@ namespace MediaBrowser.Dlna.PlayTo
MediaSourceId = playlistItem.MediaSourceId,
AudioStreamIndex = playlistItem.AudioStreamIndex,
SubtitleStreamIndex = playlistItem.SubtitleStreamIndex,
- VolumeLevel = _device.Volume
+ VolumeLevel = _device.Volume,
+ CanSeek = true
}).ConfigureAwait(false);
}
@@ -617,7 +621,7 @@ namespace MediaBrowser.Dlna.PlayTo
}
private readonly CultureInfo _usCulture = new CultureInfo("en-US");
-
+
public Task SendGeneralCommand(GeneralCommand command, CancellationToken cancellationToken)
{
GeneralCommandType commandType;
@@ -637,23 +641,23 @@ namespace MediaBrowser.Dlna.PlayTo
case GeneralCommandType.ToggleMute:
return _device.ToggleMute();
case GeneralCommandType.SetVolume:
- {
- string volumeArg;
-
- if (command.Arguments.TryGetValue("Volume", out volumeArg))
{
- int volume;
+ string volumeArg;
- if (int.TryParse(volumeArg, NumberStyles.Any, _usCulture, out volume))
+ if (command.Arguments.TryGetValue("Volume", out volumeArg))
{
- return _device.SetVolume(volume);
+ int volume;
+
+ if (int.TryParse(volumeArg, NumberStyles.Any, _usCulture, out volume))
+ {
+ return _device.SetVolume(volume);
+ }
+
+ throw new ArgumentException("Unsupported volume value supplied.");
}
- throw new ArgumentException("Unsupported volume value supplied.");
+ throw new ArgumentException("Volume argument cannot be null");
}
-
- throw new ArgumentException("Volume argument cannot be null");
- }
default:
return Task.FromResult(true);
}