public void AddOnlineMediaItem(OnlineMediaItem omi) { try { if (omi is RadioStation) { Add(new RadioStationPlaylistItem(omi as RadioStation)); } else if (omi is DeezerTrackItem) { Add(new DeezerTrackPlaylistItem(omi as DeezerTrackItem)); } EventRaiser(Count - 1, -1, UpdateType.Added); SetupRandomSequence(-1); } catch (Exception ex) { ErrorDispatcher.DispatchError(ex, true); } finally { Application.DoEvents(); } }
public void SafeRemoveItem(OnlineMediaItem item) { if (Contains(item)) { OnlineMediaItems.Remove(item); } }
public void SafeAddItem(OnlineMediaItem item) { if (Contains(item) == false) { OnlineMediaItems.Add(item); } }
private void LvRadioStations_SelectedIndexChanged(object sender, EventArgs e) { base.SelectedItems.Clear(); foreach (ListViewItem lvi in lvRadioStations.SelectedItems) { OnlineMediaItem rs = lvi.Tag as OnlineMediaItem; if (rs != null) { base.SelectedItems.Add(rs); } } }
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 bool Contains(OnlineMediaItem item) { return(OnlineMediaItems.Contains(item)); }