Exemplo n.º 1
0
        private void OnMovieInfo(GUIListItem item)
        {
            if (item == null)
            {
                return;
            }
            // Get movie info (item.DVDLabel holds movie id from videodatabase)
            IMDBMovie movie   = new IMDBMovie();
            int       movieId = -1;

            int.TryParse(item.DVDLabel, out movieId);
            VideoDatabase.GetMovieInfoById(movieId, ref movie);

            if (movie == null)
            {
                return;
            }

            if (movie.ID >= 0)
            {
                GUIVideoInfo videoInfo = (GUIVideoInfo)GUIWindowManager.GetWindow((int)Window.WINDOW_VIDEO_INFO);
                videoInfo.Movie           = movie;
                videoInfo.FolderForThumbs = string.Empty;
                GUIWindowManager.ActivateWindow((int)Window.WINDOW_VIDEO_INFO);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Plays a MpVideos movie
        /// </summary>
        /// <param name="id"></param>
        /// <param name="startPos"></param>
        internal static void PlayVideo(int id, int startPos)
        {
            //Code mostly copied from WindowPlugins -> GUIVideoFiles -> GuiVideoTitle.cs
            IMDBMovie movie = new IMDBMovie();

            VideoDatabase.GetMovieInfoById(id, ref movie);
            if (movie == null && movie.ID < 0)
            {
                WifiRemote.LogMessage("No video found for id " + id, WifiRemote.LogType.Warn);
                return;
            }
            GUIVideoFiles.Reset(); // reset pincode
            ArrayList files = new ArrayList();

            //Code for MediaPortal 1.3 Beta and higher
            VideoDatabase.GetFilesForMovie(movie.ID, ref files);
            if (files.Count > 1)
            {
                GUIVideoFiles.StackedMovieFiles = files;
                GUIVideoFiles.IsStacked         = true;
            }
            else
            {
                GUIVideoFiles.IsStacked = false;
            }

            GUIVideoFiles.MovieDuration(files, false);


            GUIVideoFiles.PlayMovie(movie.ID, false);
        }
Exemplo n.º 3
0
        public static LatestMediaHandler.MQTTItem CheckDB(string SearchFile)
        {
            LatestMediaHandler.MQTTItem item = new LatestMediaHandler.MQTTItem();
            if (MQTTPlugin.DebugMode)
            {
                Logger.Debug("Check to see if video is in MyVideos database.");
            }

            if (MQTTPlugin.DebugMode)
            {
                Logger.Debug("MyVideo found, searching Database for: " + SearchFile);
            }
            try
            {
                IMDBMovie movie   = new IMDBMovie();
                int       movieID = VideoDatabase.GetMovieId(SearchFile);
                VideoDatabase.GetMovieInfoById(movieID, ref movie);
                if (movie.ID > 0)
                {
                    if (MQTTPlugin.DebugMode)
                    {
                        Logger.Debug("Video is in MyVideos database.");
                    }
                    item.Id       = movie.IMDBNumber;
                    item.Title    = movie.Title + " (" + movie.Year + ")";
                    item.Filename = SearchFile;
                    item.Genres   = movie.Genre;
                    item.GetArtwork("movie");
                }
            }
            catch (Exception e)
            {
                Logger.Error("Error getting info from MyVideo Database: " + e.Message);
            }

            return(item);
        }
Exemplo n.º 4
0
        private void SetIMDBThumbs(ArrayList items)
        {
            GUIListItem listItem;
            ArrayList   movies = new ArrayList();

            for (int x = 0; x < items.Count; ++x)
            {
                listItem = (GUIListItem)items[x];
                if (listItem.IsFolder)
                {
                    if (File.Exists(listItem.Path + @"\VIDEO_TS\VIDEO_TS.IFO"))
                    {
                        movies.Clear();
                        string pathName = listItem.Path + @"\VIDEO_TS";
                        VideoDatabase.GetMoviesByPath(pathName, ref movies);
                        for (int i = 0; i < movies.Count; ++i)
                        {
                            IMDBMovie movieDetails = (IMDBMovie)movies[i];
                            string    fileName     = "VIDEO_TS.IFO";
                            if (movieDetails.File[0] == '\\' || movieDetails.File[0] == '/')
                            {
                                movieDetails.File = movieDetails.File.Substring(1);
                            }

                            if (fileName.Length > 0)
                            {
                                if (movieDetails.File == fileName /*|| pItem->GetLabel() == info.Title*/)
                                {
                                    if (Util.Utils.IsDVD(listItem.Path))
                                    {
                                        listItem.Label = String.Format("({0}:) {1}", listItem.Path.Substring(0, 1), movieDetails.Title);
                                    }
                                    string coverArtImage = Util.Utils.GetCoverArt(Thumbs.MovieTitle, movieDetails.Title + "{" + movieDetails.ID + "}");
                                    if (Util.Utils.FileExistsInCache(coverArtImage))
                                    {
                                        listItem.ThumbnailImage = coverArtImage;
                                        listItem.IconImageBig   = coverArtImage;
                                        listItem.IconImage      = coverArtImage;
                                    }
                                    // look for better thumbs
                                    coverArtImage = Util.Utils.ConvertToLargeCoverArt(coverArtImage);
                                    if (Util.Utils.FileExistsInCache(coverArtImage))
                                    {
                                        listItem.ThumbnailImage = coverArtImage;
                                    }
                                    break;
                                }
                            }
                        }
                    }
                }
                else
                {
                    // Try to fetch covers for playlist items added from database views
                    int movieId = VideoDatabase.GetMovieId(listItem.Path);
                    if (movieId > 0)
                    {
                        IMDBMovie movie = new IMDBMovie();
                        VideoDatabase.GetMovieInfoById(movieId, ref movie);
                        listItem.AlbumInfoTag = movie;
                        string cover = Util.Utils.GetCoverArt(Thumbs.MovieTitle, movie.Title + "{" + movieId + "}");
                        if (Util.Utils.FileExistsInCache(cover))
                        {
                            listItem.ThumbnailImage = cover;
                            listItem.IconImageBig   = cover;
                            listItem.IconImage      = cover;
                        }
                        // look for better thumbs
                        cover = Util.Utils.ConvertToLargeCoverArt(cover);
                        if (Util.Utils.FileExistsInCache(cover))
                        {
                            listItem.ThumbnailImage = cover;
                        }
                    }
                }
            }

            movies.Clear();
            VideoDatabase.GetMoviesByPath(currentFolder, ref movies);
            for (int x = 0; x < items.Count; ++x)
            {
                listItem = (GUIListItem)items[x];
                if (!listItem.IsFolder)
                {
                    IMDBMovie movieDetails = new IMDBMovie();
                    int       idMovie      = VideoDatabase.GetMovieInfo(listItem.Path, ref movieDetails);
                    if (idMovie >= 0)
                    {
                        string coverArtImage = Util.Utils.GetCoverArt(Thumbs.MovieTitle, movieDetails.Title);
                        if (Util.Utils.FileExistsInCache(coverArtImage))
                        {
                            listItem.ThumbnailImage = coverArtImage;
                            listItem.IconImageBig   = coverArtImage;
                            listItem.IconImage      = coverArtImage;
                        }
                        // look for better thumbs
                        coverArtImage = Util.Utils.ConvertToLargeCoverArt(coverArtImage);
                        if (Util.Utils.FileExistsInCache(coverArtImage))
                        {
                            listItem.ThumbnailImage = coverArtImage;
                        }
                    }
                    else
                    {
                        Util.Utils.SetThumbnails(ref listItem);
                    }
                }
            }
        }
        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);
        }
Exemplo n.º 6
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);
        }