27 new
VuoCable( fromNode? fromNode->getBase() : NULL,
28 fromPort? fromPort->getBase() : NULL,
29 toNode? toNode->getBase() : NULL,
30 toPort? toPort->getBase() : NULL,
34 isAlwaysEventOnly =
false;
44 this->isAlwaysEventOnly = isEventOnly;
53 return this->isAlwaysEventOnly;
61 this->isHidden = hidden;
69 return this->isHidden;
75 bool VuoCompilerCable::portHasData(
VuoPort *port)
88 ostringstream declaration;
95 if ((fromNode ||
getBase()->isPublishedInputCable())
96 && (toNode ||
getBase()->isPublishedOutputCable())
97 && fromPort && toPort)
110 declaration << fromNodeIdentifier <<
":" << fromPort->
getClass()->
getName() <<
" -> "
114 bool isExplicitlyEventOnly = (isAlwaysEventOnly && portHasData(
getBase()->getFromPort() ) && portHasData(
getBase()->getToPort() ));
115 if (isExplicitlyEventOnly || isHidden)
119 if (isExplicitlyEventOnly)
120 declaration <<
"event=true";
122 if (isExplicitlyEventOnly && isHidden)
126 declaration <<
"style=invis";
134 return declaration.str();
142 if (isAlwaysEventOnly)
148 bool fromPortHasData = portHasData(fromPort);
149 bool toPortHasData = portHasData(toPort);
153 return toPortHasData;
157 return fromPortHasData;
161 return (fromPortHasData && toPortHasData);
168 Value *outputDataPointer,
bool shouldTransmitEvent)
172 if (outputDataPointer)
175 inputEventPort->
generateReplaceData(module, block, toNodeContextValue, outputDataPointer, toPortContextValue);
178 if (shouldTransmitEvent)
179 inputEventPort->
generateStoreEvent(module, block, toNodeContextValue,
true, toPortContextValue);