public static void SetPlayAction(ModifierKeys modifier, PlayActions action) { if (modifier != ModifierKeys.Windows) { PlayKeys[modifier] = action; } }
private void SelectSong() { // Determine what to do with the selected song depending on what special keys are pressed PlayActions action = Config.GetPlayAction(ModifierKeys.None); if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift) { action = Config.GetPlayAction(ModifierKeys.Shift); } else if ((Keyboard.Modifiers & ModifierKeys.Alt) == ModifierKeys.Alt) { action = Config.GetPlayAction(ModifierKeys.Alt); } else if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control) { action = Config.GetPlayAction(ModifierKeys.Control); } // Do it if (action == PlayActions.AddAndPlayNow || action == PlayActions.AddAndPlayNext) { foreach (object item in lstView.SelectedItems) { Player.ActivePlayer.Queue.Insert(0, item as Song); } // TODO: Insert directly after the current song (at least for optical reasons when randomizing) foreach (object item in lstView.SelectedItems) { Player.ActivePlayer.Playlist.Add(item as Song); } if (action == PlayActions.AddAndPlayNow) { Player.ActivePlayer.NextSong(); // Is this always correct? } } else if (action == PlayActions.Add) { foreach (object item in lstView.SelectedItems) { Player.ActivePlayer.Playlist.Add(item as Song); } //player.PlayPlaylist(); } else if (action == PlayActions.PlayNowUseView) { } else if (action == PlayActions.PlayNowReplacePlaylist) { } if (Player.ActivePlayer.PlaybackState != TP_PLAYBACKSTATE.Playing) { Player.ActivePlayer.PlayPause(); } }