26 new
VuoCable( fromNode? fromNode->getBase() : NULL,
27 fromPort? fromPort->getBase() : NULL,
28 toNode? toNode->getBase() : NULL,
29 toPort? toPort->getBase() : NULL,
33 isAlwaysEventOnly =
false;
43 this->isAlwaysEventOnly = isEventOnly;
52 return this->isAlwaysEventOnly;
60 this->isHidden = hidden;
68 return this->isHidden;
74 bool VuoCompilerCable::portHasData(
VuoPort *port)
87 ostringstream declaration;
94 if ((fromNode ||
getBase()->isPublishedInputCable())
95 && (toNode ||
getBase()->isPublishedOutputCable())
96 && fromPort && toPort)
109 declaration << fromNodeIdentifier <<
":" << fromPort->
getClass()->
getName() <<
" -> "
113 bool isExplicitlyEventOnly = (isAlwaysEventOnly && portHasData(
getBase()->getFromPort() ) && portHasData(
getBase()->getToPort() ));
114 if (isExplicitlyEventOnly || isHidden)
118 if (isExplicitlyEventOnly)
119 declaration <<
"event=true";
121 if (isExplicitlyEventOnly && isHidden)
125 declaration <<
"style=invis";
133 return declaration.str();
141 if (isAlwaysEventOnly)
147 bool fromPortHasData = portHasData(fromPort);
148 bool toPortHasData = portHasData(toPort);
152 return toPortHasData;
156 return fromPortHasData;
160 return (fromPortHasData && toPortHasData);
167 Value *outputDataValue,
bool shouldTransmitEvent)
172 inputEventPort->
generateReplaceData(module, block, toNodeContextValue, outputDataValue, toPortContextValue);
174 if (shouldTransmitEvent)
175 inputEventPort->
generateStoreEvent(module, block, toNodeContextValue,
true, toPortContextValue);