<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Sorry, I will attempt to explain more clearly. I am a GSoC
student working on the UPnP SD. One bug that I have found was that duplicate
entries of the same directory would be shown under a server. For example:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>+MyUPnPServer<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>|- My Directory<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>|- My Directory<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>As you can see, the second "My Directory" does not
belong. This can be replicated by altering an item under "My
Directory" on the UPnP server, causing the server to re-broadcast its
contents. The UPnP client (in VLC) then rebuilds the directory and adds it to
the list (under "MyUPnPServer"), not removing the old, outdated
directory. The way to fix it would be to remove the old directory which is why
I was asking about input_item_node_* and if it provided a means of deleting
specific nodes. I took your advice and created a patch using
services_discovery_RemoveItem, but it removes "MyUPnPServer" as well
as all of its children. Once I remove it, I add "MyUPnPServer" to the
list using services_discovery_AddItem. Once "MyUPnPServer" is added,
I use input_item_node_* and input_item_* to create the directory tree.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>The caveat now is that it causes "MyUPnPServer" to
flash, and the user is now required to go through the directory tree to find an
item they are looking for.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>One solution would be to check each item from the old list and check
if it's in the new list, if not, simply delete it and move on. But it is not
possible with input_item_node_* and please correct me if I'm wrong, but it
doesn't look like services_discovery_RemoveItem is capable of removing a
sub-item of "MyUPnPServer" without removing "MyUPnPServer"
as well.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I hope this is more clear.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thanks again,<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Austin B<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> vlc-devel-bounces@videolan.org
[mailto:vlc-devel-bounces@videolan.org] <b>On Behalf Of </b>Jakob Leben<br>
<b>Sent:</b> Tuesday, June 08, 2010 8:31 PM<br>
<b>To:</b> Mailing list for VLC media player developers<br>
<b>Subject:</b> Re: [vlc-devel] Question about input_item_node_* functions<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal>On Wed, Jun 9, 2010 at 2:04 AM, Austin Burrow <<a
href="mailto:atburrow@gmail.com">atburrow@gmail.com</a>> wrote:<o:p></o:p></p>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>The downside
about using services_discovery_AddItem/services_discovery_RemoveItem is that
the whole tree must be rebuilt causing it to flash when it is being rebuilt.</span>
<o:p></o:p></p>

</div>

<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;
margin-left:4.8pt;margin-right:0in'>

<div>

<p class=MsoNormal> <o:p></o:p></p>

</div>

</blockquote>

<blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;
margin-left:4.8pt;margin-right:0in'>

<div>

<p class=MsoNormal><span style='font-size:11.0pt;color:#1F497D'>... A complete
fix for this would be to have access to each node being displayed and having
the option to remove it from the list, but as you said, input_item_node_* does
not offer that capability, and services_discovery_RemoveItem will remove the
whole list.</span><o:p></o:p></p>

</div>

</blockquote>

<div>

<p class=MsoNormal><br>
 <o:p></o:p></p>

</div>

</div>

<p class=MsoNormal>Sorry, I do not understand what you mean by "remove the
whole list". The services_discovery_RemoveItem() should remove only the
item given as argument plus all the item's children.<br>
If the whole tree of items currently presented is refreshed after adding and
removing an item is very much GUI-dependent. In Qt GUI interface of VLC 1.1 and
above the refreshing does not take place and any open node in a tree view stays
open when an item is add or removed. I don't know about the Mac interface or
other LibVLC clients.<br>
<br>
If I understand right, you are trying to fix something that appears as a bug in
the upnp_intel VLC plugin? Could you please describe the issue better or post a
bug report?<br>
<br>
Best regards,<br>
<br>
J.L.<o:p></o:p></p>

</div>

</body>

</html>