private void AddDownloadListItem(MusicEntryModel musicEntry) { if (listViewDownload.Items.Find(musicEntry.ProxyId, false).Length != 0) { return; } ListViewItem item = new ListViewItem(musicEntry.Title); item.Name = musicEntry.ProxyId; item.Tag = musicEntry; item.SubItems.Add(new ListViewItem.ListViewSubItem(item, musicEntry.Artist) { Tag = columnHeaderArtist }); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, musicEntry.Album) { Tag = columnHeaderAlbum }); listViewDownload.Items.Add(item); if (musicEntry.IsFileExists()) { Bitmap img = musicEntry.GetCoverFromFile(); if (img != null) { imgDownloadListCover.Images.Add(musicEntry.ProxyId, img); item.ImageKey = musicEntry.ProxyId; } } }
private void RemoveFromDownloadList(MusicEntryModel musicEntry) { if (musicEntry != null) { listViewDownload.Items.RemoveByKey(musicEntry.ProxyId); imgDownloadListCover.Images.RemoveByKey(musicEntry.ProxyId); } }
public List <MusicEntryModel> GetAlbumById(string id) { Dictionary <string, string> data = new Dictionary <string, string>(); data.Add("id", id); string response = webController.RequestString("get_album", data); return(MusicEntryModel.GetMusicEntrysByM3U(response)); }
/*public MusicEntry GetSongById(string id) * { * Dictionary<string, string> data = new Dictionary<string, string>(); * data.Add("id", id); * string response = webController.RequestString("get_song", data); * List<MusicEntry> music = MusicEntry.GetMusicEntrysByM3U(response); * return music != null ? music.First() : null; * }*/ public List <MusicEntryModel> GetArtistTopTracksById(string id, int count = 20) { Dictionary <string, string> data = new Dictionary <string, string>(); data.Add("id", id); data.Add("type", "song"); data.Add("num_tracks", count.ToString()); string response = webController.RequestString("get_top_tracks_artist", data); return(MusicEntryModel.GetMusicEntrysByM3U(response)); }
private async void PlayListItem(MusicEntryModel musicEntry) { string lastUrl = AudioController.Instance.AudioUrl; if (AudioController.Instance.WaveOut.PlaybackState == NAudio.Wave.PlaybackState.Playing) { AudioController.Instance.StopAudio(); } if (lastUrl != musicEntry.ProxyPath) { await AudioController.Instance.PlayMp3FromUrl(musicEntry.ProxyPath); } }
public List <MusicEntryModel> GetMusicBySearch(string title, string artist, int count = 20) { Dictionary <string, string> data = new Dictionary <string, string>(); data.Add("type", "matches"); if (!string.IsNullOrEmpty(title)) { data.Add("title", title); } if (!string.IsNullOrEmpty(artist)) { data.Add("artist", artist); } data.Add("exact", "no"); data.Add("num_tracks", count.ToString()); string response = webController.RequestString("get_by_search", data); return(MusicEntryModel.GetMusicEntrysByM3U(response)); }
private void RemoveDownloadListItemsFromSelection() { if (!downloadAvaible) { return; } if (listViewDownload.SelectedItems.Count == 0) { return; } if (MetroFramework.MetroMessageBox.Show(this, "Would you remove the items from the download list?", "Download list", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) { foreach (ListViewItem item in listViewDownload.SelectedItems) { MusicEntryModel musicEntry = (MusicEntryModel)item.Tag; RemoveFromDownloadList(musicEntry); } listViewDownload.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); } }
public List <MusicEntryModel> GetMusicByPlaylist(PlaylistEntryModel playlistEntry) { string response = webController.RequestString(playlistEntry.ProxyPath); return(MusicEntryModel.GetMusicEntrysByM3U(response)); }
private async void DownloadListItems() { if (!downloadAvaible) { return; } if (listViewDownload.SelectedItems.Count == 0) { return; } if (MetroFramework.MetroMessageBox.Show(this, "Would you download the items?", "Download", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) { List <ListViewItem> downloadItems = new List <ListViewItem>(); foreach (ListViewItem item in listViewDownload.SelectedItems) { MusicEntryModel musicEntry = (MusicEntryModel)item.Tag; if (!musicEntry.IsFileExists()) { downloadItems.Add(item); } } downloadAvaible = false; progressBarDownload.Maximum = downloadItems.Count; progressBarDownload.Enabled = true; foreach (ListViewItem item in downloadItems) { progressBarDownload.Value++; MusicEntryModel musicEntry = (MusicEntryModel)item.Tag; musicEntry.UpdateFilePath(); start_download: try { await ProxyApiController.Instance.DownloadSong(musicEntry.ProxyPath, musicEntry.FilePath); Bitmap img = musicEntry.GetCoverFromFile(); if (img != null) { imgDownloadListCover.Images.Add(musicEntry.ProxyId, img); item.ImageKey = musicEntry.ProxyId; } } catch (Exception e) { try { File.Delete(musicEntry.FilePath); } catch { } if (!ConfigController.IgnoreErrors) { DialogResult dialogResult = MetroFramework.MetroMessageBox.Show(this, "Error at item " + progressBarDownload.Value + ":\n" + e.ToString(), "Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation); if (dialogResult == DialogResult.Retry) { goto start_download; } else if (dialogResult == DialogResult.Ignore) { continue; } else { break; } } else { continue; } } } progressBarDownload.Value = 0; progressBarDownload.Enabled = false; downloadAvaible = true; } }