protected override void DisplaySearchResultsInternal() { lvTracks.Items.Clear(); if (this.Items != null) { foreach (var item in this.Items) { DeezerTrackItem dzi = item as DeezerTrackItem; if (dzi != null) { ListViewItem lvi = new ListViewItem(new string[] { string.Empty, dzi.Title, dzi.Artist, dzi.Album, dzi.Url }); lvi.Tag = dzi; lvTracks.Items.Add(lvi); } } if (lvTracks.Items.Count > 0) { lvTracks.Items[0].Selected = true; lvTracks.Items[0].Focused = true; } } }
private void OnListSelectedIndexChanged(object sender, EventArgs e) { base.SelectedItems.Clear(); foreach (ListViewItem lvi in lvTracks.SelectedItems) { DeezerTrackItem dti = lvi.Tag as DeezerTrackItem; if (dti != null) { base.SelectedItems.Add(dti); } } }
protected override void HandleAction(string act) { var selItems = this.SelectedItems; DeezerTrackItem selItem = null; if (selItems != null && selItems.Count > 0) { selItem = selItems[0] as DeezerTrackItem; } string search = string.Empty; switch (act) { case "LookupDeezerArtist": search = string.Format("artist:\"{0}\"", selItem.Artist.ToLowerInvariant()); break; case "LookupDeezerAlbum": search = string.Format("artist:\"{0}\" album:\"{1}\"", selItem.Artist.ToLowerInvariant(), selItem.Album.ToLowerInvariant()); break; case "LookupDeezerTrack": search = string.Format("artist:\"{0}\" track:\"{1}\"", selItem.Artist.ToLowerInvariant(), selItem.Title.ToLowerInvariant()); break; case "LookupMyPlaylists": EventDispatch.DispatchEvent(LocalEventNames.StartDeezerSearch, act); return; case "OpenDeezerPage": Process.Start("http://www.deezer.com"); return; } if (string.IsNullOrEmpty(search) == false) { EventDispatch.DispatchEvent(LocalEventNames.StartDeezerSearch, search); } }
public void LoadM3UPlaylistFromString(string content, string playlistFileName = "") { try { OnlineMediaItem omi = null; string[] lines = content.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (lines != null) { foreach (string line in lines) { if (_abortLoad) { break; } if (line.StartsWith("#")) { if (line.StartsWith("#RADIO:")) { string s = line.Replace("#RADIO:", "").Trim(); string[] fields = s.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); if (fields != null && fields.Length > 1) { omi = new RadioStation(OnlineMediaSource.ShoutCast); omi.Title = fields[1]; } } else if (line.StartsWith("#DZMEDIA:")) { string s = line.Replace("#DZMEDIA:", "").Trim(); int idx = s.IndexOf(','); if (idx > 0) { string durStr = s.Substring(0, idx); DeezerTrackItem dti = new DeezerTrackItem(); int sec = 0; int.TryParse(durStr, out sec); dti.Duration = TimeSpan.FromSeconds(sec); if (idx < (s.Length - 2)) { string[] fields2 = s.Substring(idx + 1).Split("`".ToCharArray(), StringSplitOptions.RemoveEmptyEntries); dti.Artist = fields2[0]; dti.Title = fields2[1]; dti.Album = fields2[2]; } omi = dti; } } } else { if (omi != null) { omi.Url = line; AddOnlineMediaItem(omi); } else { AddItem(GetAbsoluteItemPath(line, playlistFileName)); } omi = null; } } } } catch (Exception ex) { Logger.LogException(ex); } }
public DeezerTrackPlaylistItem(DeezerTrackItem dti) : base(dti.Url, false, false) { _dti = dti; }