Beispiel #1
0
        void UpdateInfo()
        {
            if (task == null || task.Status != TaskStatus.Running)
            {
                var container = TinyIoC.TinyIoCContainer.Current;

                IMessageProvider messageProvider = container.Resolve <IMessageProvider>(Naming.ContainerNSR.MESSAGE_PROVIDER);

                task = System.Threading.Tasks.Task.Factory.StartNew(() =>
                {
                    for (int i = 0; i < SelectedTracks.Count(); i++)
                    {
                        TrackVM item = SelectedTracks.ElementAt(i);
                        TracklistProvider.Instance.UpdateTrackTagInfo(item);
                    }
                }).ContinueWith(o =>
                {
                    RootDispatcher.Dispatcher.Invoke(() =>
                    {
                        string message = messageProvider.TrackInfoUpdated;

                        if (MessageUpdated != null)
                        {
                            MessageUpdated(this, new MessageEventArgs {
                                Message = message
                            });
                        }
                    });
                });
            }
        }
Beispiel #2
0
        void Play()
        {
            BASSActive status = AudioControllerService.Current.GetStreamStatus();

            if (SelectedTracks.Count() > 0 && status == BASSActive.BASS_ACTIVE_STOPPED)
            {
                TracklistProvider.Instance.SetCurrentIndex(Tracks.IndexOf(SelectedTracks.First()));
                AudioControllerService.Current.LoadFile(TracklistProvider.Instance.GetCurrentTrack().Location);
            }
            else
            {
                switch (status)
                {
                case BASSActive.BASS_ACTIVE_PLAYING:

                    AudioControllerService.Current.Pause();

                    break;

                case BASSActive.BASS_ACTIVE_PAUSED:

                    AudioControllerService.Current.Play(false);

                    break;

                default:

                    if (TracklistProvider.Instance.Tracks.Count > 0)
                    {
                        if (TracklistProvider.Instance.CurrentIndex < 0)
                        {
                            TracklistProvider.Instance.SetCurrentIndex(0);
                        }
                        AudioControllerService.Current.LoadFile(TracklistProvider.Instance.GetCurrentTrack().Location);
                    }

                    break;
                }

                if (status != BASSActive.BASS_ACTIVE_PLAYING && TracklistProvider.Instance.Tracks.Count == 0)
                {
                    AddTrack();

                    if (TracklistProvider.Instance.Tracks.Count > 0)
                    {
                        TracklistProvider.Instance.SetCurrentIndex(0);
                        AudioControllerService.Current.LoadFile(TracklistProvider.Instance.GetCurrentTrack().Location);
                        //AudioControllerService.Instance.Play(false);
                    }
                }
            }
        }