void Rec709ToLinearOp::modifyChannels( const Imath::Box2i &displayWindow, const Imath::Box2i &dataWindow, ChannelVector &channels ) { Rec709ToLinearOp::Converter converter; for ( ChannelVector::iterator it = channels.begin(); it != channels.end(); it++ ) { despatchTypedData<Rec709ToLinearOp::Converter, TypeTraits::IsFloatVectorTypedData>( *it, converter ); } }
/*! @brief Report the connections for a given port. @param[in] flavour The format for the output. @param[in] portName The port to be inspected. @param[in] checker A function that provides for early exit from loops. @param[in] checkStuff The private data for the early exit function. */ static void reportConnections(const OutputFlavour flavour, const YarpString & portName, CheckFunction checker, void * checkStuff) { ODL_ENTER(); //#### ODL_S1s("portName = ", portName); //#### ODL_P1("checkStuff = ", checkStuff); //#### bool sawInputs = false; bool sawOutputs = false; ChannelVector inputs; ChannelVector outputs; YarpString inputsAsString; YarpString outputsAsString; Utilities::GatherPortConnections(portName, inputs, outputs, Utilities::kInputAndOutputBoth, false, checker, checkStuff); if (0 < inputs.size()) { for (ChannelVector::const_iterator walker(inputs.begin()); inputs.end() != walker; ++walker) { switch (flavour) { case kOutputFlavourTabs : if (sawInputs) { inputsAsString += ", "; } inputsAsString += SanitizeString(walker->_portName, true); switch (walker->_portMode) { case kChannelModeTCP : inputsAsString += " TCP"; break; case kChannelModeUDP : inputsAsString += " UDP"; break; case kChannelModeOther : inputsAsString += " unknown"; break; default : break; } break; case kOutputFlavourJSON : if (sawInputs) { inputsAsString += ", "; } inputsAsString += T_("{ " CHAR_DOUBLEQUOTE_ "Port" CHAR_DOUBLEQUOTE_ ": " CHAR_DOUBLEQUOTE_); inputsAsString += SanitizeString(walker->_portName); inputsAsString += T_(CHAR_DOUBLEQUOTE_ ", " CHAR_DOUBLEQUOTE_ "Mode" CHAR_DOUBLEQUOTE_ ": " CHAR_DOUBLEQUOTE_); switch (walker->_portMode) { case kChannelModeTCP : inputsAsString += "TCP"; break; case kChannelModeUDP : inputsAsString += "UDP"; break; case kChannelModeOther : inputsAsString += "unknown"; break; default : break; } inputsAsString += T_(CHAR_DOUBLEQUOTE_ " }"); break; case kOutputFlavourNormal : inputsAsString += " Input from "; inputsAsString += SanitizeString(walker->_portName, true); switch (walker->_portMode) { case kChannelModeTCP : inputsAsString += " via TCP."; break; case kChannelModeUDP : inputsAsString += " via UDP."; break; case kChannelModeOther : inputsAsString += " via non-TCP/non-UDP."; break; default : break; } inputsAsString += "\n"; break; default : break; } sawInputs = true; } } if (0 < outputs.size()) { for (ChannelVector::const_iterator walker(outputs.begin()); outputs.end() != walker; ++walker) { switch (flavour) { case kOutputFlavourTabs : if (sawOutputs) { outputsAsString += ", "; } outputsAsString += SanitizeString(walker->_portName, true); switch (walker->_portMode) { case kChannelModeTCP : outputsAsString += " TCP"; break; case kChannelModeUDP : outputsAsString += " UDP"; break; case kChannelModeOther : outputsAsString += " unknown"; break; default : break; } break; case kOutputFlavourJSON : if (sawOutputs) { outputsAsString += ", "; } outputsAsString += T_("{ " CHAR_DOUBLEQUOTE_ "Port" CHAR_DOUBLEQUOTE_ ": " CHAR_DOUBLEQUOTE_); outputsAsString += SanitizeString(walker->_portName); outputsAsString += T_(CHAR_DOUBLEQUOTE_ ", " CHAR_DOUBLEQUOTE_ "Mode" CHAR_DOUBLEQUOTE_ ": " CHAR_DOUBLEQUOTE_); switch (walker->_portMode) { case kChannelModeTCP : outputsAsString += "TCP"; break; case kChannelModeUDP : outputsAsString += "UDP"; break; case kChannelModeOther : outputsAsString += "unknown"; break; default : break; } outputsAsString += T_(CHAR_DOUBLEQUOTE_ " }"); break; case kOutputFlavourNormal : outputsAsString += " Output to "; outputsAsString += SanitizeString(walker->_portName, true); switch (walker->_portMode) { case kChannelModeTCP : outputsAsString += " via TCP."; break; case kChannelModeUDP : outputsAsString += " via UDP."; break; case kChannelModeOther : outputsAsString += " via non-TCP/non-UDP."; break; default : break; } outputsAsString += "\n"; break; default : break; } sawOutputs = true; } } switch (flavour) { case kOutputFlavourTabs : cout << inputsAsString.c_str() << "\t" << outputsAsString.c_str(); break; case kOutputFlavourJSON : cout << T_(CHAR_DOUBLEQUOTE_ "Inputs" CHAR_DOUBLEQUOTE_ ": [ ") << inputsAsString.c_str() << T_(" ], " CHAR_DOUBLEQUOTE_ "Outputs" CHAR_DOUBLEQUOTE_ ": [ ") << outputsAsString.c_str() << " ]"; break; case kOutputFlavourNormal : if (sawInputs || sawOutputs) { if (sawInputs) { cout << inputsAsString.c_str(); } if (sawOutputs) { cout << outputsAsString.c_str(); } } else { cout << " No active connections." << endl; } break; default : break; } ODL_EXIT(); //#### } // reportConnections