private async void HandleDropActionAsync(IDropInfo dropInfo, IList fileOrDirDropList) { if (this.FileSearchWorker.CanStartSearch()) { var files = await this.FileSearchWorker.StartSearchAsync(fileOrDirDropList); var currentFilesCollView = this.FirstSimplePlaylistFiles as ICollectionView; if (currentFilesCollView == null) { var filesColl = new PlayListObservableCollection(files); var filesCollView = CollectionViewSource.GetDefaultView(filesColl); this.FirstSimplePlaylistFiles = filesCollView; ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null); } else { var insertIndex = dropInfo.InsertIndex; var destinationList = DefaultDropHandler.GetList(dropInfo.TargetCollection); foreach (var o in files) { destinationList.Insert(insertIndex++, o); } var mediaFiles = destinationList.OfType <IMediaFile>();//.ToList(); this.ResetPlayListIndices(mediaFiles); } } }
public async void HandleCommandLineArgsAsync(IList args) { if (args == null || args.Count == 0) { return; } // TODO take another search worker for multiple added files via command line (possible lost the command line files while searching...) if (this.FileSearchWorker.CanStartSearch()) { var files = await this.FileSearchWorker.StartSearchAsync(args); var currentFilesCollView = this.FirstSimplePlaylistFiles as ICollectionView; var scrollIndex = 0; if (currentFilesCollView == null) { var filesColl = new PlayListObservableCollection(files); var filesCollView = CollectionViewSource.GetDefaultView(filesColl); this.FirstSimplePlaylistFiles = filesCollView; ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null); this.Play(); } else { var filesColl = (IList)((ICollectionView)this.FirstSimplePlaylistFiles).SourceCollection; scrollIndex = filesColl.Count; var insertIndex = filesColl.Count; foreach (var o in files) { filesColl.Insert(insertIndex++, o); } var mediaFiles = filesColl.OfType <IMediaFile>();//.ToList(); this.ResetPlayListIndices(mediaFiles); var file = files.FirstOrDefault(); if (file != null) { ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(file); this.PlayerEngine.Play(file); } } if (this.ListBoxPlayList != null && this.ListBoxPlayList.Items != null && this.ListBoxPlayList.Items.Count > scrollIndex && scrollIndex >= 0) { this.ListBoxPlayList.ScrollIntoView(this.ListBoxPlayList.Items[scrollIndex]); } } }
public async void HandleDropActionAsync(StringCollection fileOrDirDropList) { if (FileSearchWorker.Instance.CanStartSearch()) { var files = await FileSearchWorker.Instance.StartSearchAsync(fileOrDirDropList); this.SavePlayListAsync(files); this.PlayerEngine.Stop(); var filesColl = new PlayListObservableCollection(files); var filesCollView = CollectionViewSource.GetDefaultView(filesColl); this.FirstSimplePlaylistFiles = filesCollView; ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null); } }
public async void LoadPlayListAsync() { var playList = await PlayList.GetPlayListAsync(); if (playList != null) { var filesColl = new PlayListObservableCollection(playList.Files); var filesCollView = CollectionViewSource.GetDefaultView(filesColl); this.FirstSimplePlaylistFiles = filesCollView; ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null); // await Task.Factory // .StartNew(() => { // return filesCollView; // }) // .ContinueWith(task => { // }, // CancellationToken.None, // TaskContinuationOptions.LongRunning, // TaskScheduler.FromCurrentSynchronizationContext()); } }
public async void LoadPlayListAsync() { var playList = await PlayList.LoadPlayListAsync(); if (playList != null) { var filesColl = new PlayListObservableCollection(playList.Files); var filesCollView = CollectionViewSource.GetDefaultView(filesColl); this.FirstSimplePlaylistFiles = filesCollView; ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null); // await Task.Factory // .StartNew(() => { // return filesCollView; // }) // .ContinueWith(task => { // }, // CancellationToken.None, // TaskContinuationOptions.LongRunning, // TaskScheduler.FromCurrentSynchronizationContext()); } }
public async void HandleCommandLineArgsAsync(IList args) { if (args == null || args.Count == 0) { return; } // TODO take another search worker for multiple added files via command line (possible lost the command line files while searching...) if (this.FileSearchWorker.CanStartSearch()) { var files = await this.FileSearchWorker.StartSearchAsync(args); var currentFilesCollView = this.FirstSimplePlaylistFiles as ICollectionView; var scrollIndex = 0; if (currentFilesCollView == null) { var filesColl = new PlayListObservableCollection(files); var filesCollView = CollectionViewSource.GetDefaultView(filesColl); this.FirstSimplePlaylistFiles = filesCollView; ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null); this.Play(); } else { var filesColl = (IList)((ICollectionView)this.FirstSimplePlaylistFiles).SourceCollection; scrollIndex = filesColl.Count; var insertIndex = filesColl.Count; foreach (var o in files) { filesColl.Insert(insertIndex++, o); } var mediaFiles = filesColl.OfType<IMediaFile>();//.ToList(); this.ResetPlayListIndices(mediaFiles); var file = files.FirstOrDefault(); if (file != null) { ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(file); this.PlayerEngine.Play(file); } } if (this.ListBoxPlayList != null && this.ListBoxPlayList.Items != null && this.ListBoxPlayList.Items.Count > scrollIndex && scrollIndex >= 0) { this.ListBoxPlayList.ScrollIntoView(this.ListBoxPlayList.Items[scrollIndex]); } } }
private async void HandleDropActionAsync(IDropInfo dropInfo, IList fileOrDirDropList) { if (this.FileSearchWorker.CanStartSearch()) { var files = await this.FileSearchWorker.StartSearchAsync(fileOrDirDropList); var currentFilesCollView = this.FirstSimplePlaylistFiles as ICollectionView; if (currentFilesCollView == null) { var filesColl = new PlayListObservableCollection(files); var filesCollView = CollectionViewSource.GetDefaultView(filesColl); this.FirstSimplePlaylistFiles = filesCollView; ((ICollectionView)this.FirstSimplePlaylistFiles).MoveCurrentTo(null); } else { var insertIndex = dropInfo.InsertIndex; var destinationList = DefaultDropHandler.GetList(dropInfo.TargetCollection); foreach (var o in files) { destinationList.Insert(insertIndex++, o); } var mediaFiles = destinationList.OfType<IMediaFile>();//.ToList(); this.ResetPlayListIndices(mediaFiles); } } }