private void OnDragDrop(object sender, PlayerControlEventArgs <DragEventArgs> e) { string[] filter = form.openFileDialog.Filter.Split('|'); string[] extensions = filter[1].Replace(";", "").Replace(" ", "").Split('*'); var files = (string[])e.InputArgs.Data.GetData(DataFormats.FileDrop); if (files == null) { return; } if (files.Length == 1) { var filename = files[0]; if (Directory.Exists(filename)) { var media = GetAllMediaFiles(filename); form.CloseMedia(); form.ClearPlaylist(); form.AddFiles( media.Where(file => extensions.Contains(PathHelper.GetExtension(file.ToLower()))) .OrderBy(f => f, new NaturalSortComparer()) .Where(f => PathHelper.GetExtension(f).Length > 0) .ToArray()); form.SetPlaylistIndex(0); return; } if (IsPlaylistFile(filename)) { form.OpenPlaylist(filename); return; } if (PathHelper.GetExtension(filename).Length < 1 || !extensions.Contains(Path.GetExtension(filename))) { return; } form.ActiveFile(filename); form.SetPlaylistIndex(0); } else { form.AddFiles( files.Where(file => extensions.Contains(PathHelper.GetExtension(file.ToLower()))) .OrderBy(f => f, new NaturalSortComparer()) .Where(f => PathHelper.GetExtension(f).Length > 0) .ToArray()); form.SetPlaylistIndex(0); } e.Handled = true; }
private void RepeatPlaylist() { var lastItem = m_Form.Playlist.Last(); if (m_Form.CurrentItem != lastItem) { return; } if (Media.Position != Media.Duration) { return; } m_Form.ResetPlayCount(); m_Form.SetPlaylistIndex(0); }