Esempio n. 1
0
        private void SetupExternalPlayers()
        {
            ExternalPlayerItem bluRayPlayer = ExternalPlayer.GetExternalForFormat(VideoFormat.BLURAY);
            ExternalPlayerItem allPlayers   = ExternalPlayer.GetExternalForFormat(VideoFormat.ALL);
            ExternalPlayerItem hddvdPlayer  = ExternalPlayer.GetExternalForFormat(VideoFormat.HDDVD);

            List <string> externalPlayerChoices = new List <string>();

            foreach (string player in Enum.GetNames(typeof(ExternalPlayer.KnownPlayers)))
            {
                externalPlayerChoices.Add(player);
            }

            _externalPlayerSelectionAll.Options    = externalPlayerChoices;
            _externalPlayerSelectionBluRay.Options = externalPlayerChoices;
            _externalPlayerSelectionHDDVD.Options  = externalPlayerChoices;

            _externalPlayerSelectionBluRay.Chosen = (bluRayPlayer == null)
                                                 ? ExternalPlayer.KnownPlayers.None.ToString()
                                                 : bluRayPlayer.PlayerType.ToString();

            _externalPlayerSelectionAll.Chosen = (allPlayers == null)
                                                 ? ExternalPlayer.KnownPlayers.None.ToString()
                                                 : allPlayers.PlayerType.ToString();

            _externalPlayerSelectionHDDVD.Chosen = (hddvdPlayer == null)
                                                 ? ExternalPlayer.KnownPlayers.None.ToString()
                                                 : hddvdPlayer.PlayerType.ToString();

            List <string> localFixedDrivesOptions = new List <string>();

            foreach (DriveInfo dInfo in GetFileSystemDrives())
            {
                localFixedDrivesOptions.Add(dInfo.Name);
            }

            _localFixedDrivesBluRay.Options = localFixedDrivesOptions;
            _localFixedDrivesHDDVD.Options  = localFixedDrivesOptions;
            _localFixedDrivesAll.Options    = localFixedDrivesOptions;
            _LocalFixedDrives.Options       = localFixedDrivesOptions;

            _externalPlayerPathBluRay.Value = (bluRayPlayer != null) ? bluRayPlayer.Path : string.Empty;
            _externalPlayerPathHDDVD.Value  = (hddvdPlayer != null) ? hddvdPlayer.Path : string.Empty;
            _externalPlayerPathAll.Value    = (allPlayers != null) ? allPlayers.Path : string.Empty;
        }
Esempio n. 2
0
        /// <summary>
        /// Launches the external player
        /// </summary>
        /// <returns></returns>
        public bool PlayMovie()
        {
            ExternalPlayerItem player = GetExternalForFormat(_videoFormat);

            string path = player.Path;

            // make sure the external player really cares about this
            if (string.IsNullOrEmpty(path))
            {
                return(false);
            }

            // validate the player exists
            if (!File.Exists(path))
            {
                return(false);
            }

            // setup the special rules per player type
            bool useMaximizer = false;

            switch (player.PlayerType)
            {
            case KnownPlayers.PowerDVD8:
                useMaximizer = true;

                if (_videoFormat == VideoFormat.DVD)
                {
                    _mediaPath = GetIfoPath(_mediaPath);
                }
                else if (_videoFormat == VideoFormat.BLURAY)
                {
                    _mediaPath = GetLargestM2TSPath(_mediaPath);
                }

                break;

            case KnownPlayers.TotalMediaTheater:
                useMaximizer = false;

                if (_videoFormat == VideoFormat.BLURAY &&
                    !File.Exists(Path.Combine(_mediaPath, "index.bdmv")) &&
                    File.Exists(Path.Combine(_mediaPath, "BDMV\\index.bdmv")))
                {
                    _mediaPath = Path.Combine(_mediaPath, "BDMV");
                }
                else if (_videoFormat == VideoFormat.HDDVD &&
                         Directory.Exists(_mediaPath) &&
                         !_mediaPath.EndsWith("\\"))
                {
                    _mediaPath += "\\";
                }
                break;

            case KnownPlayers.Other:
                useMaximizer = true;
                break;

            case KnownPlayers.WinDVD9:
                useMaximizer = true;
                break;
            }

            OMLApplication.ExecuteSafe(delegate
            {
                // if the maximizer app can be found use that
                string maximizerPath = Path.Combine(OMLEngine.FileSystemWalker.RootDirectory, "Maximizer.exe");

                if (useMaximizer && File.Exists(maximizerPath))
                {
                    OMLApplication.DebugLine("Calling Maximizer application \"" + path + "\" \"" + _mediaPath + "\"");
                    Process process                  = new Process();
                    process.StartInfo.FileName       = maximizerPath;
                    process.StartInfo.Arguments      = string.Format("\"{0}\" \"{1}\"", path, _mediaPath);
                    process.StartInfo.CreateNoWindow = true;
                    process.StartInfo.WindowStyle    = ProcessWindowStyle.Hidden;
                    process.Start();
                }
                else
                {
                    OMLApplication.DebugLine("Calling external application \"" + path + "\" \"" + _mediaPath + "\"");
                    Process process             = new Process();
                    process.StartInfo.FileName  = path;
                    process.StartInfo.Arguments = "\"" + _mediaPath + "\"";
                    process.Start();
                }
            });

            return(true);
        }