// -Path public Aimp4Group(StreamReader reader) { var line = reader.ReadLine(); if (string.IsNullOrWhiteSpace(line)) { return; } if (line.StartsWith("-")) { _path = line.Substring(1); } do { var pos = Util.GetActualPosition(reader); line = reader.ReadLine(); if (line.StartsWith("-")) { // Read past the end of the group, rewind stream and stop. Util.SetActualPosition(reader, pos); break; } var song = new Aimp4Song(line); Songs.Add(song); } while (!reader.EndOfStream); }
public static Aimp4Playlist UpgradePlaylist(Aimp3Playlist oldPlaylist) { var newPlaylist = new Aimp4Playlist { Name = oldPlaylist.Name, Path = System.IO.Path.ChangeExtension(oldPlaylist.Path, "aimppl4") }; var contentDuration = 0; var contentFiles = 0; var contentSize = 0; foreach (var oldGroup in oldPlaylist.Groups) { var newSongs = new List <Song>(); foreach (var oldSong in oldGroup.Songs) { var newSong = new Aimp4Song(oldSong); newSongs.Add(newSong); contentDuration += newSong.Duration; contentFiles++; contentSize += newSong.Size; } newPlaylist.Groups.Add(new Aimp4Group(oldGroup.Path, newSongs)); } newPlaylist.Summary.Add("ID", oldPlaylist.Id); newPlaylist.Summary.Add("Name", oldPlaylist.Name); newPlaylist.Summary.Add("NameIsAutoSet", "0"); newPlaylist.Summary.Add("ContentDuration", contentDuration.ToString()); newPlaylist.Summary.Add("ContentFiles", contentFiles.ToString()); newPlaylist.Summary.Add("ContentSize", contentSize.ToString()); newPlaylist.Summary.Add("PlaybackCursor", oldPlaylist.Cursor); newPlaylist.Settings.Add("Flags", oldPlaylist.Flags); newPlaylist.Settings.Add("FormatMainLine", "%IF(%R,%R - %T,%T)"); newPlaylist.Settings.Add("FormatSecondLine", "%E :: %H, %B, %S"); newPlaylist.Settings.Add("GroupFormatLine", "%D"); return(newPlaylist); }