std::shared_ptr<NodeControl> GraphController::CreateViewNode(IGraphEditorNode* newNode) const { auto viewNode = std::make_shared<NodeControl>(); std::vector<std::pair<std::string, std::string>> inputNames, outputNames; for (const auto inputIdx : Range(newNode->GetNumInputs())) { inputNames.push_back({ newNode->GetInputName(inputIdx), TidyTypename(newNode->GetInputTypeName(inputIdx)) }); } for (const auto outputIdx : Range(newNode->GetNumOutputs())) { outputNames.push_back({ newNode->GetOutputName(outputIdx), TidyTypename(newNode->GetOutputTypeName(outputIdx)) }); } viewNode->SetSize({ 300, 100 }); viewNode->SetInputPorts(inputNames); viewNode->SetOutputPorts(outputNames); viewNode->SetName(""); viewNode->SetType(TidyTypename(newNode->GetClassName())); return viewNode; }
NS_IMETHODIMP InputPortManager::NotifySuccess(nsIArray* aDataList) { MOZ_ASSERT(aDataList); if (!aDataList) { RejectPendingGetInputPortsPromises(NS_ERROR_DOM_ABORT_ERR); return NS_ERROR_INVALID_ARG; } uint32_t length; nsresult rv = aDataList->GetLength(&length); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } nsCOMPtr<nsIInputPortListener> portListener; rv = mInputPortService->GetInputPortListener( getter_AddRefs(portListener)); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } ErrorResult erv; nsTArray<nsRefPtr<InputPort>> ports(length); for (uint32_t i = 0; i < length; i++) { nsCOMPtr<nsIInputPortData> portData = do_QueryElementAt(aDataList, i); if (NS_WARN_IF(!portData)) { continue; } InputPortData* data = static_cast<InputPortData*>(portData.get()); nsRefPtr<InputPort> port; switch (data->GetType()) { case InputPortType::Av: port = AVInputPort::Create(GetParentObject(), portListener, portData, erv); break; case InputPortType::Displayport: port = DisplayPortInputPort::Create(GetParentObject(), portListener, portData, erv); break; case InputPortType::Hdmi: port = HDMIInputPort::Create(GetParentObject(), portListener, portData, erv); break; default: MOZ_ASSERT_UNREACHABLE("Unknown InputPort type"); break; } MOZ_ASSERT(port); ports.AppendElement(port); } if (NS_WARN_IF(erv.Failed())) { return erv.StealNSResult(); } erv = SetInputPorts(ports); return erv.StealNSResult(); }