public override ConfigData.ExternalPlayer GetDefaultConfiguration() { ConfigData.ExternalPlayer config = base.GetDefaultConfiguration(); config.SupportsMultiFileCommandArguments = true; return(config); }
/// <summary> /// Gets the default configuration that will be pre-populated into the UI of the configurator. /// </summary> public override ConfigData.ExternalPlayer GetDefaultConfiguration() { ConfigData.ExternalPlayer config = base.GetDefaultConfiguration(); config.LaunchType = ConfigData.ExternalPlayerLaunchType.WMCNavigate; return(config); }
void lstPlayerType_SelectionChanged(object sender, SelectionChangedEventArgs e) { PlayableExternalConfigurator uiConfigurator = PlayableItemFactory.Instance.GetPlayableExternalConfiguratorByName(ExternalPlayerName); ConfigData.ExternalPlayer externalPlayer = uiConfigurator.GetDefaultConfiguration(); FillControlsFromObject(externalPlayer, uiConfigurator, false, false); }
/// <summary> /// Gets the default configuration that will be pre-populated into the UI of the configurator. /// </summary> public override ConfigData.ExternalPlayer GetDefaultConfiguration() { ConfigData.ExternalPlayer config = base.GetDefaultConfiguration(); // http://wiki.videolan.org/VLC_command-line_help config.SupportsMultiFileCommandArguments = true; // If you enable the full screen interface in VLC, you really don't need the splash screen. config.ShowSplashScreen = false; return(config); }
public override void ConfigureUserSettings(ConfigData.ExternalPlayer currentConfiguration) { string iniPath = GetIniFilePath(currentConfiguration); if (string.IsNullOrEmpty(iniPath)) { ConfigureUserSettingsIntoRegistry(); } else { ConfigureUserSettingsIntoINIFile(iniPath); } }
/// <summary> /// Gets the default configuration that will be pre-populated into the UI of the configurator. /// </summary> public virtual ConfigData.ExternalPlayer GetDefaultConfiguration() { ConfigData.ExternalPlayer config = new ConfigData.ExternalPlayer(); config.ExternalPlayerName = ExternalPlayerName; config.LaunchType = ConfigData.ExternalPlayerLaunchType.CommandLine; config.SupportsPlaylists = true; config.SupportsMultiFileCommandArguments = false; config.ShowSplashScreen = true; config.MinimizeMCE = true; config.Args = "{0}"; return(config); }
//private DateTime startTime; protected override void PlayInternal(bool resume) { if (PlaybackController.IsPlaying) { PlaybackController.Stop(); //stop whatever is playing } //startTime = DateTime.Now; //grab this so we can attempt to determine how long we are playing the item //MediaBrowser.Library.Logging.Logger.ReportInfo("Playing external. Duration: " + duration); MediaType type = MediaTypeResolver.DetermineType(path); ConfigData.ExternalPlayer p = configuredPlayers[type]; string args = string.Format(p.Args, path); Process player = Process.Start(p.Command, args); Async.Queue("Ext Player Mgmt", () => ManageExtPlayer(player, p.MinimizeMCE, p.ShowSplashScreen)); }
protected override void PlayInternal(bool resume) { if (PlaybackController.IsPlaying) { PlaybackController.Pause(); } MediaType type = MediaTypeResolver.DetermineType(path); ConfigData.ExternalPlayer p = configuredPlayers[type]; string args = string.Format(p.Args, path); Process.Start(p.Command, args); MarkWatched(); }
private void btnAddPlayer_Click(object sender, RoutedEventArgs e) { List <MediaType> list = new List <MediaType>(); // Provide a list of media types that haven't been used. This is to filter out the selection available to the end user. // Don't display media types for players that we already have. // // This also makes this scalable, we shouldn't have to adjust this code for new media types. Boolean found; foreach (MediaType item in Enum.GetValues(typeof(MediaType))) { // See if an external player has been configured for this media type. found = false; foreach (ConfigData.ExternalPlayer player in lstExternalPlayers.Items) { if (player.MediaType == item) { found = true; break; } } // If a player hasn't been configured then make it an available option to be added if (!found) { list.Add(item); } } var form = new SelectMediaTypeForm(list); form.Owner = this; form.WindowStartupLocation = WindowStartupLocation.CenterOwner; if (form.ShowDialog() == true) { ConfigData.ExternalPlayer player = new ConfigData.ExternalPlayer(); player.MediaType = (MediaType)form.cbMediaType.SelectedItem; player.Args = "\"{0}\""; // Assign a default parameter config.ExternalPlayers.Add(player); lstExternalPlayers.Items.Add(player); lstExternalPlayers.SelectedItem = player; SaveConfig(); } }
private static string GetIniFilePath(ConfigData.ExternalPlayer currentConfiguration) { string directory = Path.GetDirectoryName(currentConfiguration.Command); string path = Path.Combine(directory, "mpc-hc.ini"); if (File.Exists(path)) { return(path); } path = Path.Combine(directory, "mpc-hc64.ini"); if (File.Exists(path)) { return(path); } return(string.Empty); }
public void UpdateObjectFromControls(ConfigData.ExternalPlayer externalPlayer) { PlayableExternalConfigurator uiConfigurator = PlayableItemFactory.Instance.GetPlayableExternalConfiguratorByName(ExternalPlayerName); ConfigData.ExternalPlayer externalPlayerDefault = uiConfigurator.GetDefaultConfiguration(); externalPlayer.LaunchType = externalPlayerDefault.LaunchType; externalPlayer.ExternalPlayerName = lstPlayerType.SelectedItem.ToString(); externalPlayer.Args = txtArguments.Text; externalPlayer.Command = txtCommand.Text; externalPlayer.MinimizeMCE = chkMinimizeMce.IsChecked.Value; externalPlayer.ShowSplashScreen = chkShowSplashScreen.IsChecked.Value; //externalPlayer.HideTaskbar = chkHideTaskbar.IsChecked.Value; externalPlayer.SupportsMultiFileCommandArguments = chkSupportsMultiFileCommand.IsChecked.Value; externalPlayer.SupportsPlaylists = chkSupportsPLS.IsChecked.Value; externalPlayer.MediaTypes = (lstMediaTypes.ItemsSource as EnumWrapperList <MediaType>).GetCheckedValues(); externalPlayer.VideoFormats = (lstVideoFormats.ItemsSource as EnumWrapperList <VideoFormat>).GetCheckedValues(); }
public void FillControlsFromObject(ConfigData.ExternalPlayer externalPlayer, PlayableExternalConfigurator uiConfigurator, bool refreshMediaTypes, bool refreshVideoFormats) { lstPlayerType.SelectedItem = externalPlayer.ExternalPlayerName; txtArguments.Text = externalPlayer.Args; chkMinimizeMce.IsChecked = externalPlayer.MinimizeMCE; chkShowSplashScreen.IsChecked = externalPlayer.ShowSplashScreen; //chkHideTaskbar.IsChecked = externalPlayer.HideTaskbar; chkSupportsMultiFileCommand.IsChecked = externalPlayer.SupportsMultiFileCommandArguments; chkSupportsPLS.IsChecked = externalPlayer.SupportsPlaylists; if (refreshMediaTypes) { EnumWrapperList <MediaType> mediaTypes = lstMediaTypes.ItemsSource as EnumWrapperList <MediaType>; mediaTypes.SetValues(externalPlayer.MediaTypes); SetListDataSource(lstMediaTypes, mediaTypes); } if (refreshVideoFormats) { EnumWrapperList <VideoFormat> videoFormats = lstVideoFormats.ItemsSource as EnumWrapperList <VideoFormat>; videoFormats.SetValues(externalPlayer.VideoFormats); SetListDataSource(lstVideoFormats, videoFormats); } SetControlVisibility(uiConfigurator); SetTips(uiConfigurator); if (string.IsNullOrEmpty(externalPlayer.Command)) { AutoFillPaths(uiConfigurator); } else { txtCommand.Text = externalPlayer.Command; } }
void lnkConfigureMyPlayer_Click(object sender, RoutedEventArgs e) { if (!ValidateUserInput()) { return; } PlayableExternalConfigurator uiConfigurator = PlayableItemFactory.Instance.GetPlayableExternalConfiguratorByName(ExternalPlayerName); if (MessageBox.Show(uiConfigurator.ConfigureUserSettingsConfirmationMessage, "Configure Player", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { ConfigData.ExternalPlayer currentConfiguration = uiConfigurator.GetDefaultConfiguration(); currentConfiguration.Command = txtCommand.Text; try { uiConfigurator.ConfigureUserSettings(currentConfiguration); } catch { MessageBox.Show("There was an error configuring some settings. Please open your player and verify them."); } } }
public virtual void ConfigureUserSettings(ConfigData.ExternalPlayer currentConfiguration) { }
public void FillControlsFromObject(ConfigData.ExternalPlayer externalPlayer) { FillControlsFromObject(externalPlayer, PlayableItemFactory.Instance.GetPlayableExternalConfiguratorByName(externalPlayer.ExternalPlayerName), true, true); }
/// <summary> /// Gets the default configuration that will be pre-populated into the UI of the configurator. /// </summary> public virtual ConfigData.ExternalPlayer GetDefaultConfiguration() { ConfigData.ExternalPlayer config = new ConfigData.ExternalPlayer(); config.ExternalPlayerName = ExternalPlayerName; config.LaunchType = ConfigData.ExternalPlayerLaunchType.CommandLine; config.SupportsPlaylists = true; config.SupportsMultiFileCommandArguments = false; config.ShowSplashScreen = true; config.MinimizeMCE = true; config.Args = "{0}"; return config; }