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 }); } }); }); } }
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); } } } }