示例#1
0
        private static void LaunchShortcut(TvPlayer player, UiBroadcastService service, string arguments)
        {
            var shortcutPath = Path.Combine(AppUiConfiguration.Current.Folders.Cache, service.FullServiceName) + ".lnk";

            // delete exising shortcut
            if (File.Exists(shortcutPath))
            {
                File.SetAttributes(shortcutPath, FileAttributes.Normal);
                File.Delete(shortcutPath);
            } // if

            var shortcut = new ShellLink();

            shortcut.TargetPath   = player.Path;
            shortcut.Arguments    = arguments;
            shortcut.Description  = string.Format(Properties.Texts.ExternalPlayerShortcutDescription, player.Name, service.DisplayName);
            shortcut.IconLocation = service.Logo.GetLogoIconPath();
            shortcutPath          = shortcut.CreateShortcut(shortcutPath);

            var start = new ProcessStartInfo()
            {
                UseShellExecute = true,
                FileName        = shortcutPath,
                ErrorDialog     = true,
            };

            using (var process = Process.Start(start))
            {
                // no op
            } // using process
        }     // LaunchShortcut
示例#2
0
        private static void LaunchProcess(TvPlayer player, string arguments)
        {
            var start = new ProcessStartInfo()
            {
                UseShellExecute = false,
                ErrorDialog     = true,
                FileName        = player.Path,
                Arguments       = arguments,
            };

            using (var process = Process.Start(start))
            {
                // no op
            } // using process
        }     // LaunchProcess
示例#3
0
        }     // FillList

        private static ListViewItem GetTvPlayerListItem(TvPlayer player, Guid defaultPlayerId, Font listFont, bool selectDefault)
        {
            var item = new ListViewItem(player.Name);

            item.Tag      = player;
            item.ImageKey = TvPlayersSettingsRegistration.Settings.GetPlayerIconKey(player.Path);
            if (player.Id == defaultPlayerId)
            {
                item.Font = new Font(listFont, FontStyle.Bold);
                if (selectDefault)
                {
                    item.Selected = true;
                } // if
            }     // if

            return(item);
        } // GetTvPlayerListItem
示例#4
0
        } // ShowTvChannel

        public static void Launch(TvPlayer player, UiBroadcastService service, bool throughShortcut)
        {
            if (!File.Exists(player.Path))
            {
                var ex = new FileNotFoundException();
                throw new FileNotFoundException(ex.Message + "\r\n" + player.Path);
            } // if

            if (LaunchParamKeys == null)
            {
                LaunchParamKeys = new string[]
                {
                    "Channel.Url",
                    "Channel.Name",
                    "Channel.Description",
                    "Channel.Icon.Path",
                };
            } // if

            var paramValues = new string[]
            {
                service.LocationUrl,
                service.DisplayName,
                service.DisplayDescription,
                service.Logo.GetLogoIconPath(),
            };

            var parameters      = ArgumentsManager.CreateParameters(LaunchParamKeys, paramValues, false);
            var arguments       = ArgumentsManager.ExpandArguments(player.Arguments, parameters, TvPlayer.ParameterOpenBrace, TvPlayer.ParameterCloseBrace, StringComparison.CurrentCultureIgnoreCase);
            var launchArguments = ArgumentsManager.JoinArguments(arguments);

            if (throughShortcut)
            {
                LaunchShortcut(player, service, launchArguments);
            }
            else
            {
                LaunchProcess(player, launchArguments);
            } // if-else
        }     // Launch
示例#5
0
        }     // TvPlayerEditorDialog_Shown

        private void buttonSelectPlayer_Click(object sender, EventArgs e)
        {
            if (Player == null)
            {
                selectPlayerDialog.InitialDirectory = Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System));
            }
            else
            {
                selectPlayerDialog.InitialDirectory = Path.GetDirectoryName(textPlayerPath.Text);
                selectPlayerDialog.FileName         = textPlayerPath.Text;
            } // if-else

            if (selectPlayerDialog.ShowDialog(this) != DialogResult.OK)
            {
                if (Player == null)
                {
                    Close();
                } // if
                return;
            }     // if

            if (Player == null)
            {
                Player           = new TvPlayer();
                Player.Id        = Guid.NewGuid();
                Player.Arguments = argumentsEditor.Arguments;
            } // if

            IsDataChanged = true;
            if (textPlayerPath.Text != selectPlayerDialog.FileName)
            {
                textPlayerName.Text = GetPlayerName(selectPlayerDialog.FileName);
            } // if
            textPlayerPath.Text = selectPlayerDialog.FileName;
            SetPlayerIcon();
        } // buttonSelectPlayer_Click
示例#6
0
        }     // Create

        private static TvPlayersSettings GetTvPlayers(string vlcPath)
        {
            List <TvPlayer> players;
            TvPlayer        player;
            string          path;

            players = new List <TvPlayer>(3);
            var programFilesFolder86 = Installation.GetProgramFilesAnyFolder();

            // VLC
            player = new TvPlayer()
            {
                Name      = "VLC",
                Id        = new Guid("{C12055FC-315A-47C4-B9CC-48D2E6ECD8FA}"),
                Path      = vlcPath,
                Arguments = new string[]
                {
                    "{param:Channel.Url}",
                    ":meta-title={param:Channel.Name}",
                } // Arguments
            }; // TvPlayer
            players.Add(player);

            // VLC (new window)
            player = new TvPlayer()
            {
                Name      = Properties.Texts.GetTvPlayersVlcSameWindow,
                Id        = new Guid("{4154BC96-5FE0-45C2-9895-083C4FB4C8CE}"),
                Path      = vlcPath,
                Arguments = new string[]
                {
                    "{param:Channel.Url}",
                    ":meta-title={param:Channel.Name}",
                    "--one-instance",
                    "--no-playlist-enqueue",
                } // Arguments
            }; // TvPlayer
            players.Add(player);

            // locate K-Lite Codec Pack Media Player Classic
            path = Path.Combine(programFilesFolder86, "K-Lite Codec Pack\\Media Player Classic\\mpc-hc.exe");
            if (File.Exists(path))
            {
                player = new TvPlayer()
                {
                    Name      = "K-Lite Media Player Classic",
                    Id        = new Guid("{8FFA2EE6-8823-40B1-B20F-F962389D4B07}"),
                    Path      = path,
                    Arguments = new string[]
                    {
                        "{param:Channel.Url}",
                        "/play",
                    } // Arguments
                }; // TvPlayer

                players.Add(player);
            } // if

            var tvPlayers = new TvPlayersSettings()
            {
                DirectLaunch    = false,
                DefaultPlayerId = new Guid("{C12055FC-315A-47C4-B9CC-48D2E6ECD8FA}"),
                Players         = players.ToArray()
            };

            return(tvPlayers);
        } // GetTvPlayers