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