コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
        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]);
                }
            }
        }
コード例 #3
0
    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);
      }
    }
コード例 #4
0
    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());
      }
    }
コード例 #5
0
        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());
            }
        }
コード例 #6
0
    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]);
        }
      }
    }
コード例 #7
0
    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);
        }
      }
    }