コード例 #1
0
ファイル: MoviePlayer.cs プロジェクト: framug/moving-pictures
        private ResumeDialogResult PromptUserToResume(DBMovieInfo movie)
        {
            if (movie.UserSettings == null || movie.UserSettings.Count == 0 || (movie.ActiveUserSettings.ResumePart < 2 && movie.ActiveUserSettings.ResumeTime <= 30))
            {
                return(ResumeDialogResult.FromBeginning);
            }

            logger.Debug("Resume Prompt: Movie='{0}', ResumePart={1}, ResumeTime={2}", movie.Title, movie.ActiveUserSettings.ResumePart, movie.ActiveUserSettings.ResumeTime);

            // figure out the resume time to display to the user
            int displayTime = movie.ActiveUserSettings.ResumeTime;

            if (movie.LocalMedia.Count > 1)
            {
                for (int i = 0; i < movie.ActiveUserSettings.ResumePart - 1; i++)
                {
                    if (movie.LocalMedia[i].Duration > 0)
                    {
                        displayTime += (movie.LocalMedia[i].Duration / 1000); // convert milliseconds to seconds
                    }
                }
            }

            string sbody = movie.Title + "\n" + Translation.ResumeFrom + " " + Util.Utils.SecondsToHMSString(displayTime);

            GUIResumeDialog.Result result = GUIResumeDialog.ShowResumeDialog(Translation.ResumeFromLast, displayTime,
                                                                             GUIResumeDialog.MediaType.Video);
            switch (result)
            {
            case GUIResumeDialog.Result.PlayFromBeginning: return(ResumeDialogResult.FromBeginning);

            case GUIResumeDialog.Result.PlayFromLastStopTime: return(ResumeDialogResult.Resume);

            default: return(ResumeDialogResult.Cancel);
            }
        }
コード例 #2
0
        public bool OnPlayDVD(String drive, int parentId)
        {
            Log.Info("SelectDVDHandler: OnPlayDVD() playing DVD {0}", drive);
            if (g_Player.Playing && g_Player.IsDVD)
            {
                if (g_Player.CurrentFile.Equals(drive + @"\VIDEO_TS\VIDEO_TS.IFO"))
                {
                    return(true);
                }
            }

            if (Util.Utils.getDriveType(drive) == 5) //cd or dvd drive
            {
                string driverLetter = drive.Substring(0, 1);
                string fileName     = String.Format(@"{0}:\VIDEO_TS\VIDEO_TS.IFO", driverLetter);
                if (!VirtualDirectories.Instance.Movies.RequestPin(fileName))
                {
                    return(false);
                }
                if (File.Exists(fileName))
                {
                    IMDBMovie movieDetails = new IMDBMovie();
                    VideoDatabase.GetMovieInfo(fileName, ref movieDetails);
                    int    idFile           = VideoDatabase.GetFileId(fileName);
                    int    idMovie          = VideoDatabase.GetMovieId(fileName);
                    int    timeMovieStopped = 0;
                    byte[] resumeData       = null;
                    if ((idMovie >= 0) && (idFile >= 0))
                    {
                        timeMovieStopped = VideoDatabase.GetMovieStopTimeAndResumeData(idFile, out resumeData);
                        //Log.Info("GUIVideoFiles: OnPlayBackStopped for DVD - idFile={0} timeMovieStopped={1} resumeData={2}", idFile, timeMovieStopped, resumeData);
                        if (timeMovieStopped > 0)
                        {
                            string title = Path.GetFileName(fileName);
                            VideoDatabase.GetMovieInfoById(idMovie, ref movieDetails);
                            if (movieDetails.Title != string.Empty)
                            {
                                title = movieDetails.Title;
                            }

                            GUIResumeDialog.Result result =
                                GUIResumeDialog.ShowResumeDialog(title, timeMovieStopped,
                                                                 GUIResumeDialog.MediaType.DVD);

                            if (result == GUIResumeDialog.Result.Abort)
                            {
                                return(false);
                            }

                            if (result == GUIResumeDialog.Result.PlayFromBeginning)
                            {
                                timeMovieStopped = 0;
                            }
                        }
                    }

                    if (g_Player.Playing)
                    {
                        g_Player.Stop();
                    }

                    g_Player.PlayDVD(drive + @"\VIDEO_TS\VIDEO_TS.IFO");
                    g_Player.ShowFullScreenWindow();
                    if (g_Player.Playing && timeMovieStopped > 0)
                    {
                        if (g_Player.IsDVD)
                        {
                            g_Player.Player.SetResumeState(resumeData);
                        }
                        else
                        {
                            Log.Debug("SelectDVDHandler.OnPlayDVD - skipping");
                            g_Player.SeekAbsolute(timeMovieStopped);
                        }
                    }
                    return(true);
                }
            }
            //no disc in drive...
            GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_OK);

            dlgOk.SetHeading(3);   //my videos
            Log.Error("SelectDVDHandler: OnPlayDVD() Plz Insert Disk (ShowSelectDriveDialog)");
            dlgOk.SetLine(1, 219); //no disc
            dlgOk.DoModal(parentId);
            return(false);
        }
コード例 #3
0
        // Image play method
        public bool OnPlayBD(String drive, int parentId)
        {
            Log.Info("SelectBDHandler: OnPlayBD() playing BD {0}", drive);

            string currentFile = g_Player.CurrentFile;

            if (g_Player.Playing && Util.Utils.IsISOImage(currentFile) && IsBDPlayList(ref currentFile))
            //if (g_Player.Playing && IsBDPlayList(ref currentFile))
            {
                return(true);
            }

            if (Util.Utils.getDriveType(drive) == 5) //cd or dvd drive
            {
                string driverLetter = drive.Substring(0, 1);
                string fileName     = String.Format(@"{0}:\BDMV\index.bdmv", driverLetter);

                if (File.Exists(fileName))
                {
                    IMDBMovie movieDetails = new IMDBMovie();

                    //string name = DaemonTools._MountedIsoFile;

                    int idFileImg  = VideoDatabase.GetFileId(fileName);
                    int idMovieImg = VideoDatabase.GetMovieId(fileName);

                    ///*
                    int    timeMovieStopped = 0;
                    byte[] resumeData       = null;

                    if ((idMovieImg >= 0) && (idFileImg >= 0))
                    {
                        timeMovieStopped = VideoDatabase.GetMovieStopTimeAndResumeData(idFileImg, out resumeData, g_Player.SetResumeBDTitleState);

                        if (timeMovieStopped > 0)
                        {
                            string title = Path.GetFileName(fileName);
                            VideoDatabase.GetMovieInfoById(idMovieImg, ref movieDetails);

                            if (movieDetails.Title != string.Empty)
                            {
                                title = movieDetails.Title;
                            }

                            GUIResumeDialog.Result result =
                                GUIResumeDialog.ShowResumeDialog(title, timeMovieStopped,
                                                                 GUIResumeDialog.MediaType.DVD);

                            if (result == GUIResumeDialog.Result.Abort)
                            {
                                return(false);
                            }

                            if (result == GUIResumeDialog.Result.PlayFromBeginning)
                            {
                                timeMovieStopped = 0;
                            }
                        }
                    }
                    //*/

                    if (g_Player.Playing)
                    {
                        g_Player.Stop();
                    }

                    g_Player.PlayBD(drive + @"\BDMV\index.bdmv");
                    g_Player.ShowFullScreenWindow();

                    ///*
                    if (g_Player.Playing && timeMovieStopped > 0)
                    {
                        g_Player.SeekAbsolute(timeMovieStopped);
                    }
                    //*/

                    return(true);
                }
            }
            //no disc in drive...
            GUIDialogOK dlgOk = (GUIDialogOK)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_OK);

            dlgOk.SetHeading(3);   //my videos
            Log.Error("SelectBDHandler: OnPlayBD() Plz Insert Disk");
            dlgOk.SetLine(1, 219); //no disc
            dlgOk.DoModal(parentId);
            return(true);
        }