private void UpdateAlbumListView(string theID)
        {
            LastAlbumId = theID;

            MusicFolder FolderContents = Subsonic.GetMusicDirectory(theID);

            lbAlbums.BeginUpdate();
            lbAlbums.Items.Clear();

            if (AlbumListHistory.Peek() != "Root")
            {
                lbAlbums.Items.Add(new MusicFolder("..", AlbumListHistory.Peek()));
            }

            foreach (MusicFolder mf in FolderContents.Folders)
            {
                lbAlbums.Items.Add(mf);
            }

            foreach (Song sg in FolderContents.Songs)
            {
                lbAlbums.Items.Add(sg);
            }

            lbAlbums.EndUpdate();
        }
        private void lbAlbums_SelectedIndexChanged(object sender, EventArgs e)
        {
            SubsonicItem theItem = (SubsonicItem)lbAlbums.SelectedItem;

            if (theItem.ItemType == SubsonicItem.SubsonicItemType.Folder)
            {
                if (theItem.Name == "..")
                {
                    AlbumListHistory.Pop();
                }
                else
                {
                    AlbumListHistory.Push(LastAlbumId);
                }
                UpdateAlbumListView(theItem.id);
            }
            else if (theItem.ItemType == SubsonicItem.SubsonicItemType.Song)
            {
                thePlayer.addToPlaylist((Song)theItem);
                thePlayer.play();
            }
        }