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);
            }
        }
Ejemplo n.º 4
0
        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;
 }