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); } }
/// <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); }
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); }
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); }
// 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); }