private void searchButton_Click(object sender, System.EventArgs e)
        {
            mediaListView.Items.Clear();
            foreach (TreeNode node in cdsRootNode.Nodes)
            {
                if (node.Tag.GetType() == typeof(CpRootContainer))
                {
                    uint            totalMatches;
                    CpRootContainer rootContainer = (CpRootContainer)node.Tag;
                    IList           results       = rootContainer.Search(new MediaComparer("dc:title contains \"" + searchTextBox.Text + "\""), 0, 100000, out totalMatches);

                    mediaListView.BeginUpdate();
                    foreach (IUPnPMedia item in results)
                    {
                        string artist = "";
                        if (item.MergedProperties[CommonPropertyNames.creator] != null && item.MergedProperties[CommonPropertyNames.creator].Count > 0)
                        {
                            artist = item.MergedProperties[CommonPropertyNames.creator][0].ToString();
                        }
                        string size = "";
                        if (item.Resources.Length > 0)
                        {
                            MediaResource res = (MediaResource)item.Resources[0];
                            //size = BuildSizeString(long.Parse(res.Size.ToString()));
                            if (res.Size.IsValid)
                            {
                                size = BuildSizeString((long)res.Size.m_Value);                                 //BuildSizeString(long.Parse(res.Size.ToString()));
                            }
                        }
                        int    icon      = 4;
                        string classtype = "";
                        if (item.MergedProperties[CommonPropertyNames.Class] != null && item.MergedProperties[CommonPropertyNames.Class].Count > 0)
                        {
                            classtype = item.MergedProperties[CommonPropertyNames.Class][0].ToString();
                            switch (classtype)
                            {
                            case "object.container":
                            case "object.container.storageFolder":
                                icon = 2;
                                break;

                            case "object.item":
                                icon = 8;
                                break;

                            case "object.item.imageItem":
                            case "object.item.imageItem.photo":
                                icon = 7;
                                break;

                            case "object.item.videoItem":
                            case "object.item.videoItem.movie":
                                icon = 6;
                                break;

                            case "object.item.audioItem":
                            case "object.item.audioItem.musicTrack":
                                icon = 5;
                                break;
                            }
                        }
                        ListViewItem l = new ListViewItem(new string[] { item.Title, artist, size }, icon);
                        l.Tag = item;
                        mediaListView.Items.Add(l);
                    }
                    mediaListView.EndUpdate();
                }
            }
        }
 private void OnAllRootsContainerChanged(CpRootContainer sender, CpMediaContainer thisChanged)
 {
     IncrementalFillMediaList();
 }