/// <summary> /// Start playing a movie on a seperate thread /// </summary> /// <param name="movie">Movie to play</param> /// <param name="resume">Ask user to resume?</param> private static void DoPlayMovie(DBMovieInfo movie, bool resume, int startPosition) { if (GUIGraphicsContext.form.InvokeRequired) { PlayMovieAsyncDelegate d = new PlayMovieAsyncDelegate(DoPlayMovie); GUIGraphicsContext.form.Invoke(d, new object[] { movie, resume, startPosition }); return; } WifiRemote.LogMessage("Play movie (resume: " + resume + ", pos: " + startPosition, WifiRemote.LogType.Debug); // Clear resume if (!resume && movie.UserSettings != null && movie.UserSettings.Count > 0) { DBUserMovieSettings userSetting = movie.ActiveUserSettings; userSetting.ResumePart = 0; userSetting.ResumeTime = 0; userSetting.ResumeData = null; userSetting.Commit(); } if (player == null) { player = new MoviePlayer(new MovingPicturesGUI()); } player.Play(movie); if (!resume && startPosition > 0) { g_Player.SeekAbsolute(startPosition); } }
/// <summary> /// Start playing a movie on a seperate thread /// </summary> /// <param name="movie">Movie to play</param> /// <param name="resume">Ask user to resume?</param> private static void DoPlayMovie(DBMovieInfo movie, bool resume, int startPosition) { if (GUIGraphicsContext.form.InvokeRequired) { PlayMovieAsyncDelegate d = new PlayMovieAsyncDelegate(DoPlayMovie); GUIGraphicsContext.form.Invoke(d, new object[] { movie, resume, startPosition }); return; } WifiRemote.LogMessage("Play movie (resume: " + resume + ", pos: " + startPosition, WifiRemote.LogType.Debug); // Clear resume if (!resume && movie.UserSettings != null && movie.UserSettings.Count > 0) { DBUserMovieSettings userSetting = movie.ActiveUserSettings; userSetting.ResumePart = 0; userSetting.ResumeTime = 0; userSetting.ResumeData = null; userSetting.Commit(); } if (player == null) player = new MoviePlayer(new MovingPicturesGUI()); player.Play(movie); if (!resume && startPosition > 0) { g_Player.SeekAbsolute(startPosition); } }