/// <summary> /// Serializes the song inventory. /// </summary> /// <param name="songs">The songs.</param> /// <returns>ServerMessage.</returns> internal static ServerMessage SerializeSongInventory(HybridDictionary songs) { ServerMessage serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("SongsLibraryMessageComposer")); if (songs == null) { serverMessage.AppendInteger(0); return(serverMessage); } serverMessage.StartArray(); foreach (UserItem userItem in songs.Values) { if (userItem == null) { serverMessage.Clear(); continue; } serverMessage.AppendInteger(userItem.Id); SongData song = SoundMachineSongManager.GetSong(userItem.SongCode); serverMessage.AppendInteger(song?.Id ?? 0); serverMessage.SaveArray(); } serverMessage.EndArray(); return(serverMessage); }
/// <summary> /// Gets the music data. /// </summary> internal void GetMusicData() { int num = Request.GetInteger(); List <SongData> list = new List <SongData>(); for (int i = 0; i < num; i++) { SongData song = SoundMachineSongManager.GetSong(Request.GetUInteger()); if (song != null) { list.Add(song); } } Session.SendMessage(SoundMachineComposer.Compose(list)); list.Clear(); }