/** Modified from original Node-Red source, for audio system visualization * vim: set ts=4: * Copyright 2013 IBM Corp. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. **/ var RED = (function() { $('#btn-keyboard-shortcuts').click(function(){showHelp();}); function hideDropTarget() { $("#dropTarget").hide(); RED.keyboard.remove(/* ESCAPE */ 27); } $('#chart').on("dragenter",function(event) { if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1) { $("#dropTarget").css({display:'table'}); RED.keyboard.add(/* ESCAPE */ 27,hideDropTarget); } }); $('#dropTarget').on("dragover",function(event) { if ($.inArray("text/plain",event.originalEvent.dataTransfer.types) != -1) { event.preventDefault(); } }) .on("dragleave",function(event) { hideDropTarget(); }) .on("drop",function(event) { var data = event.originalEvent.dataTransfer.getData("text/plain"); hideDropTarget(); RED.view.importNodes(data); event.preventDefault(); }); function make_name(n) { var name = (n.name ? n.name : n.id); name = name.replace(" ", "_").replace("+", "_").replace("-", "_"); return name } function save(force) { RED.storage.update(); if (RED.nodes.hasIO()) { var nns = RED.nodes.createCompleteNodeSet(); // sort by horizontal position, plus slight vertical position, // for well defined update order that follows signal flow nns.sort(function(a,b){ return (a.x + a.y/250) - (b.x + b.y/250); }); //console.log(JSON.stringify(nns)); //add the include files first var cpp = "#include \n#include \n" + "#include \n" + "#include \n#include \n#include \n\n" + "// GUItool: begin automatically generated code\n"; // generate code for all audio processing nodes for (var i=0; i 0 || node._def.inputs > 0)) { cpp += n.type + " "; for (var j=n.type.length; j<24; j++) cpp += " "; var name = make_name(n) cpp += name + "; "; for (var j=n.id.length; j<14; j++) cpp += " "; cpp += "//xy=" + n.x + "," + n.y + "\n"; } } // generate code for all connections (aka wires or links) var cordcount = 1; for (var i=0; i