public void StopAutomaticProgress() { lock (_progressLock) { if (_progressTimer != null) { _progressTimer.Dispose(); _progressTimer = null; } _lastProgressInfo = null; } }
public void StartAutomaticProgress(ITimerFactory timerFactory, PlaybackProgressInfo progressInfo) { lock (_progressLock) { _lastProgressInfo = progressInfo; if (_progressTimer == null) { _progressTimer = timerFactory.Create(OnProgressTimerCallback, null, 1000, 1000); } else { _progressTimer.Change(1000, 1000); } } }
public void StartAutomaticProgress(PlaybackProgressInfo progressInfo) { if (_disposed) { return; } lock (_progressLock) { _lastProgressInfo = progressInfo; if (_progressTimer == null) { _progressTimer = new Timer(OnProgressTimerCallback, null, 1000, 1000); } else { _progressTimer.Change(1000, 1000); } } }
/// <summary> /// Reports the playback progress. /// </summary> /// <param name="message">The message.</param> private void ReportPlaybackProgress(WebSocketMessageInfo message) { var session = GetSessionFromMessage(message); if (session != null && session.UserId.HasValue) { var vals = message.Data.Split('|'); var item = _dtoService.GetItemByDtoId(vals[0]); long? positionTicks = null; if (vals.Length > 1) { long pos; if (long.TryParse(vals[1], out pos)) { positionTicks = pos; } } var isPaused = vals.Length > 2 && string.Equals(vals[2], "true", StringComparison.OrdinalIgnoreCase); var isMuted = vals.Length > 3 && string.Equals(vals[3], "true", StringComparison.OrdinalIgnoreCase); var info = new PlaybackProgressInfo { Item = item, PositionTicks = positionTicks, IsMuted = isMuted, IsPaused = isPaused, SessionId = session.Id }; if (vals.Length > 4) { info.MediaSourceId = vals[4]; } if (vals.Length > 5 && !string.IsNullOrWhiteSpace(vals[5])) { info.VolumeLevel = int.Parse(vals[5], _usCulture); } if (vals.Length > 5 && !string.IsNullOrWhiteSpace(vals[6])) { info.AudioStreamIndex = int.Parse(vals[6], _usCulture); } if (vals.Length > 7 && !string.IsNullOrWhiteSpace(vals[7])) { info.SubtitleStreamIndex = int.Parse(vals[7], _usCulture); } _sessionManager.OnPlaybackProgress(info); } }
/// <summary> /// Reports the playback progress. /// </summary> /// <param name="message">The message.</param> private void ReportPlaybackProgress(WebSocketMessageInfo message) { var session = GetSessionFromMessage(message); if (session != null && session.User != null) { var vals = message.Data.Split('|'); var item = _dtoService.GetItemByDtoId(vals[0]); long? positionTicks = null; if (vals.Length > 1) { long pos; if (long.TryParse(vals[1], out pos)) { positionTicks = pos; } } var isPaused = vals.Length > 2 && string.Equals(vals[2], "true", StringComparison.OrdinalIgnoreCase); var isMuted = vals.Length > 3 && string.Equals(vals[3], "true", StringComparison.OrdinalIgnoreCase); var info = new PlaybackProgressInfo { Item = item, PositionTicks = positionTicks, IsMuted = isMuted, IsPaused = isPaused, SessionId = session.Id }; _sessionManager.OnPlaybackProgress(info); } }