Tag Pin not populated in Plugin Interface

Hi everybody,

I’m encountering a strange corner case while opening patches, where on-disk, serialized data in the Tag field of a node in some cases isn’t accessible via VVVV.PluginInterfaces.V2.Graph interface. I discovered this edge case while testing to ensure that the contents of the Tag pin get loaded properly.

Say I have a patch that contains 2 modules, which both have a UUID in their Tag field:

<!DOCTYPE PATCH  SYSTEM "http://vvvv.org/versions/vvvv50beta35.8.dtd" >
   <PATCH nodename="C:\Program Files\vvvv\vvvv_50beta35.8_x64\hehe.v4p" id="87" systemname="hehe" filename="C:\Program Files\vvvv\vvvv_50beta35.8_x64\hehe.v4p">
   <BOUNDS type="Window" left="20865" top="10455" width="9000" height="6000">
   </BOUNDS>
   <NODE systemname="player (iris-lib)" filename="..\..\..\Users\k\Desktop\VVVV\modules\player (iris-lib).v4p" nodename="player (iris-lib)" componentmode="InAWindow" id="0">
   <BOUNDS type="Node" left="900" top="1260" width="3840" height="270">
   </BOUNDS>
   <PIN pinname="Tag" slicecount="1" values="efe3eb25-42bc-8b1e-5a41-15a7483256a0">
   </PIN>
   <BOUNDS type="Window" left="26205" top="3135" width="3705" height="3180">
   </BOUNDS>
   </NODE>
   <NODE systemname="player (iris-lib)" filename="..\..\..\Users\k\Desktop\VVVV\modules\player (iris-lib).v4p" nodename="player (iris-lib)" componentmode="InAWindow" id="3">
   <BOUNDS type="Node" left="915" top="2325" width="3840" height="270">
   </BOUNDS>
   <PIN pinname="Tag" slicecount="1" values="34332200-c8bb-4809-a09c-91d8c62ebd92">
   </PIN>
   <BOUNDS type="Window" left="26055" top="225" width="9000" height="2895">
   </BOUNDS>
   </NODE>
   <NODE nodename="IOBox (String)" componentmode="InABox" id="4" systemname="IOBox (String)">
   <BOUNDS type="Node" left="900" top="885" width="3165" height="270">
   </BOUNDS>
   <BOUNDS type="Box" left="900" top="885" width="3165" height="270">
   </BOUNDS>
   <PIN pinname="Input String" visible="0" slicecount="1" values="efe3eb25-42bc-8b1e-5a41-15a7483256a0">
   </PIN>
   <PIN pinname="Output String" visible="0">
   </PIN>
   <PIN pinname="Show Grid" slicecount="1" values="0">
   </PIN>
   <PIN pinname="String Type" slicecount="1" values="MultiLine">
   </PIN>
   </NODE>
   <NODE nodename="IOBox (String)" componentmode="InABox" id="5" systemname="IOBox (String)">
   <BOUNDS type="Node" left="870" top="1905" width="3150" height="270">
   </BOUNDS>
   <BOUNDS type="Box" left="870" top="1905" width="3150" height="270">
   </BOUNDS>
   <PIN pinname="Input String" visible="0" slicecount="1" values="395fa1c9-2149-e352-bdff-5b9407570458">
   </PIN>
   <PIN pinname="Output String" visible="0">
   </PIN>
   <PIN pinname="Show Grid" slicecount="1" values="0">
   </PIN>
   <PIN pinname="String Type" slicecount="1" values="MultiLine">
   </PIN>
   </NODE>
   </PATCH>

Now, if I double click the patch file to open it, the correct contents of the Tag field are accessible via the plugin interface, and everything works as expected:

The id is correctly read from the saved XML, displayed in the inspector and handed over to the plugin.

However, when I start VVVV and then Ctrl-o (or Ctrl-Shift-o) that same patch, I get this:

The correct value is displayed in the inspector, but the plugin interface only discovers an empty Tag pin. This also happens when I add the module to the path and instantiate it using the node browser.

I’ll try and see if I can find a temporary workaround (e.g. delaying the parsing by one frame), but it would be great if this could be consistent across all the different ways of creating/loading an instance of a patch.

Cheers!

Karsten

ps: I’m using vvvv_50beta35.8_x64

hei krgn, can you upload a little demo that shows this?

Sure. :)

TestSetup.zip (12.2 KB)

I would expect that those Tags in the XML would show up in the plugin when those nodes are added.

Thank you and hope it helps!

k

hm… i’m afraid i don’t see anything in this example. a referenced Player node is missing. more details how to reproduce please.

Hey!

I made an example that should be self contained. Open the open_me_first.v4p patch, and then Ctrl-O patch.v4p. The text output should show “hey” after Parent Tag: but for some reason doesn’t. Let me know if this works…

Thx, k

Example.zip (14.5 KB)

I should add that I’m using the latest beta available (vvvv_50beta35.8_x64.zip)

works and indeed this is kinda by design: the node creates all its innards before getting its values set. so when the OnNodeAdded is fired, the parentpatch does not yet have its Tag pin set.

so how about: instead of doing what you need to do in OnNodeAdded directly, you only queue all “freshly added nodes” and then do what you need to do in Evaluate, by going through the list of freshly-added-nodes and then clearing that list.

would that work for you?

Sure, that should work. I had a feeling this would be the case. Its bit confusing though, since from my dev/user perspective its not clear why the nodes are not complete when they are handed to me. I might have overlooked the docs for that though :)

good.
regarding docs: i’d have no idea where to put something like this since i’d categorize it rather special interest. i had to figure this out myself first. if you have any suggestion where you’d have looked for it, let me know.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.