private async Task <Mediafile> GetMediafileFromParameterAsync(object path, bool sendUpdateMessage = false) { if (path is Mediafile) { isPlayingFromPlaylist = false; return(path as Mediafile); } else if (path is ThreadSafeObservableCollection <Mediafile> ) { SendLibraryLoadedMessage(path as ThreadSafeObservableCollection <Mediafile>, sendUpdateMessage); return((path as ThreadSafeObservableCollection <Mediafile>)[0]); } else if (path is Playlist) { using (Service.PlaylistService service = new Service.PlaylistService((path as Playlist).Name, (path as Playlist).IsPrivate, (path as Playlist).Password)) { if (service.IsValid) { var songList = new ThreadSafeObservableCollection <Mediafile>(await service.GetTracks().ConfigureAwait(false)); SendLibraryLoadedMessage(songList, sendUpdateMessage); return(songList[0]); } } } return(null); }
public async void StopAfter(object path) { Mediafile mediaFile = null; if (path is Mediafile) { mediaFile = path as Mediafile; isPlayingFromPlaylist = false; } else if (path is ThreadSafeObservableCollection <Mediafile> ) { mediaFile = (path as ThreadSafeObservableCollection <Mediafile>)[0]; } else if (path is Playlist) { using (Service.PlaylistService service = new Service.PlaylistService((path as Playlist).Name, (path as Playlist).IsPrivate, (path as Playlist).Password)) { if (service.IsValid) { var songList = new ThreadSafeObservableCollection <Mediafile>(await service.GetTracks().ConfigureAwait(false)); mediaFile = songList[0]; } } } else { return; } Messenger.Instance.NotifyColleagues(MessageTypes.MSG_STOP_AFTER_SONG, mediaFile); }
async void LoadDB() { using (Service.PlaylistService service = new Service.PlaylistService(Playlist.Name)) { if (service.IsValid) { var ss = service.GetTrackCount(); Songs.AddRange(await service.GetTracks().ConfigureAwait(false)); Refresh(); } } }
/// <summary> /// Plays the selected file. <seealso cref="PlayCommand"/> /// </summary> /// <param name="path"><see cref="BreadPlayer.Models.Mediafile"/> to play.</param> public async void Play(object path) { Mediafile mediaFile = null; if (path is Mediafile) { mediaFile = path as Mediafile; isPlayingFromPlaylist = false; } else if (path is ThreadSafeObservableCollection <Mediafile> ) { mediaFile = (path as ThreadSafeObservableCollection <Mediafile>)[0]; Messenger.Instance.NotifyColleagues(MessageTypes.MSG_LIBRARY_LOADED, path as ThreadSafeObservableCollection <Mediafile>); isPlayingFromPlaylist = true; } else if (path is Playlist) { using (Service.PlaylistService service = new Service.PlaylistService((path as Playlist).Name, (path as Playlist).IsPrivate, (path as Playlist).Password)) { if (service.IsValid) { var songList = new ThreadSafeObservableCollection <Mediafile>(await service.GetTracks().ConfigureAwait(false)); mediaFile = songList[0]; Messenger.Instance.NotifyColleagues(MessageTypes.MSG_LIBRARY_LOADED, songList); isPlayingFromPlaylist = true; } } } else { return; } AddToRecentCollection(mediaFile); await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { Messenger.Instance.NotifyColleagues(MessageTypes.MSG_PLAY_SONG, new List <object>() { mediaFile, true, isPlayingFromPlaylist }); (PlayCommand as RelayCommand).IsEnabled = false; await Task.Delay(100); (PlayCommand as RelayCommand).IsEnabled = true; if (TracksCollection.Elements.FirstOrDefault(t => t.Path == Player?.CurrentlyPlayingFile?.Path) != null) { TracksCollection.Elements.FirstOrDefault(t => t.Path == Player?.CurrentlyPlayingFile?.Path).State = PlayerState.Playing; } }); }