Browse Source

Merge pull request #126 from mamuesp/master

Some bugfixes and some improvements
dds
Paul Stoffregen 9 years ago
parent
commit
b20b1e6fb6
9 changed files with 286 additions and 599 deletions
  1. +78
    -528
      gui/index.html
  2. +21
    -14
      gui/red/main.js
  3. +18
    -8
      gui/red/nodes.js
  4. +11
    -6
      gui/red/ui/editor.js
  5. +32
    -12
      gui/red/ui/palette.js
  6. +22
    -3
      gui/red/ui/tab-info.js
  7. +58
    -25
      gui/red/ui/view.js
  8. +43
    -0
      gui/resources/nodes_def.json
  9. +3
    -3
      gui/style.css

+ 78
- 528
gui/index.html
File diff suppressed because it is too large
View File


+ 21
- 14
gui/red/main.js View File

@@ -65,7 +65,9 @@ var RED = (function() {
if (node && (node.outputs > 0 || node._def.inputs > 0)) {
cpp += n.type + " ";
for (var j=n.type.length; j<24; j++) cpp += " ";
cpp += n.id + "; ";
var name = (n.name ? n.name : n.id);
name = name.replace(" ", "_").replace("+", "_").replace("-", "_");
cpp += name + "; ";
for (var j=n.id.length; j<14; j++) cpp += " ";
cpp += "//xy=" + n.x + "," + n.y + "\n";
}
@@ -115,18 +117,17 @@ var RED = (function() {
//console.log(cpp);

RED.view.state(RED.state.EXPORT);
$("#dialog-form").html($("script[data-template-name='export-clipboard-dialog']").html());
$("#node-input-export").val(cpp);
$("#node-input-export").focus(function() {
RED.view.getForm('dialog-form', 'export-clipboard-dialog', function (d, f) {
$("#node-input-export").val(cpp).focus(function() {
var textarea = $(this);
textarea.select();
textarea.mouseup(function() {
textarea.unbind("mouseup");
return false;
});
});
}).focus();
$( "#dialog" ).dialog("option","title","Export to Arduino").dialog( "open" );
$("#node-input-export").focus();
});
//RED.view.dirty(false);
}
}
@@ -169,10 +170,6 @@ var RED = (function() {
}

function loadNodes() {
//$.get('list.html', function(data) {
//$("body").append(data);
//setTimeout(function() {
$(".palette-spinner").hide();
$(".palette-scroll").show();
$("#palette-search").show();
RED.storage.load();
@@ -185,11 +182,8 @@ var RED = (function() {
// if the query string has ?info=className, populate info tab
var info = getQueryVariable("info");
if (info) {
$("#tab-info").html('<div class="node-help">'
+($("script[data-help-name|='"+info+"']").html()||"")+"</div>");
RED.sidebar.info.setHelpContent('', info);
}
//}, 100);
//}, "html");
}

$('#btn-node-status').click(function() {toggleStatus();});
@@ -220,8 +214,21 @@ var RED = (function() {
}

$(function() {
$(".palette-spinner").show();
$.ajaxSetup({beforeSend: function(xhr){
if (xhr.overrideMimeType) {
xhr.overrideMimeType("application/json");
}
}});
$.getJSON( "resources/nodes_def.json", function( data ) {
var nodes = data["nodes"];
$.each(nodes, function(key, val) {
RED.nodes.registerType(val["type"], val["data"]);
});
RED.keyboard.add(/* ? */ 191,{shift:true},function(){showHelp();d3.event.preventDefault();});
loadNodes();
$(".palette-spinner").hide();
})
});

return {

+ 18
- 8
gui/red/nodes.js View File

@@ -20,7 +20,7 @@ RED.nodes = (function() {
var nodes = [];
var configNodes = {};
var links = [];
var defaultWorkspace;
//var defaultWorkspace;
var workspaces = {};

function registerType(nt,def) {
@@ -87,7 +87,7 @@ RED.nodes = (function() {
if (n._def.defaults.hasOwnProperty(d)) {
var property = n._def.defaults[d];
if (property.type) {
var type = getType(property.type)
var type = getType(property.type);
if (type && type.category == "config") {
var configNode = configNodes[n[d]];
if (configNode) {
@@ -106,9 +106,11 @@ RED.nodes = (function() {
function addLink(l) {
links.push(l);
}
/*
function addConfig(c) {
configNodes[c.id] = c;
}
*/

function getNode(id) {
if (id in configNodes) {
@@ -140,7 +142,7 @@ RED.nodes = (function() {
if (node._def.defaults.hasOwnProperty(d)) {
var property = node._def.defaults[d];
if (property.type) {
var type = getType(property.type)
var type = getType(property.type);
if (type && type.category == "config") {
var configNode = configNodes[node[d]];
if (configNode) {
@@ -315,17 +317,14 @@ RED.nodes = (function() {
*/
function cppToJSON(newNodesStr) {

var data = "";
var nodes = [];
var skipped = [];
var cables = [];

const CODE_START = "// GUItool: begin automatically generated code";
const CODE_END = "// GUItool: end automatically generated code";
const NODE_COMMENT = "//";
const NODE_AC = "AudioConnection";
const NODE_AI_I2S = "AudioInputI2S";
const NODE_AM_4 = "AudioMixer4";
const NODE_AC_SGTL = "AudioControlSGTL5000";

var parseLine = function(line) {
var parts = line.match(/^(\S+)\s(.*)/).slice(1);
@@ -368,7 +367,12 @@ RED.nodes = (function() {
"z": 0,
"wires": []
});
// first solution: skip existing id
if (!RED.nodes.node(node.id)) {
nodes.push(node);
} else {
skipped.push(node.id);
}
break;
}
};
@@ -422,6 +426,7 @@ RED.nodes = (function() {
}
};

/*
var readCode = function() {

var fileImport = $("#importInput")[0];
@@ -440,11 +445,16 @@ RED.nodes = (function() {
alert("Please upload a valid INO or text file.");
}
};
*/

traverseLines(newNodesStr);
linkCables(cables);

return JSON.stringify(nodes);
return {
count: nodes.length,
skipped: skipped.length,
data: count > 0 ? JSON.stringify(nodes) : ""
};
}

function importNodes(newNodesObj,createNewIds) {

+ 11
- 6
gui/red/ui/editor.js View File

@@ -434,7 +434,7 @@ RED.editor = (function() {
$("#"+prefix+"-"+d).change();
}
}
}
};
if (definition.credentials) {
if (node.credentials) {
@@ -456,9 +456,11 @@ RED.editor = (function() {
function showEditDialog(node) {
editing_node = node;
RED.view.state(RED.state.EDITING);
$("#dialog-form").html($("script[data-template-name='"+node.type+"']").html());
prepareEditDialog(node,node._def,"node-input");
$( "#dialog" ).dialog("option","title","Edit "+node.type+" node").dialog( "open" );
//$("#dialog-form").html(RED.view.getForm(node.type));
RED.view.getForm("dialog-form", node.type, function (d, f) {
prepareEditDialog(node,node._def,"node-input");
$( "#dialog" ).dialog("option","title","Edit "+node.type+" node").dialog( "open" );
});
}

function showEditConfigNodeDialog(name,type,id) {
@@ -471,7 +473,7 @@ RED.editor = (function() {
id: (1+Math.random()*4294967295).toString(16),
_def: node_def,
type: type
}
};
for (var d in node_def.defaults) {
if (node_def.defaults[d].value) {
configNode[d] = node_def.defaults[d].value;
@@ -479,7 +481,9 @@ RED.editor = (function() {
}
}

$("#dialog-config-form").html($("script[data-template-name='"+type+"']").html());
//$("#dialog-config-form").html(RED.view.getForm(type));
RED.view.getForm("dialog-config-form", type, function (d, f) {

prepareEditDialog(configNode,node_def,"node-config-input");

var buttons = $( "#node-config-dialog" ).dialog("option","buttons");
@@ -533,6 +537,7 @@ RED.editor = (function() {
.dialog("option","node-type",type)
.dialog("option","title",(adding?"Add new ":"Edit ")+type+" config node")
.dialog( "open" );
});
}

function updateConfigNodeSelect(name,type,value) {

+ 32
- 12
gui/red/ui/palette.js View File

@@ -86,21 +86,13 @@ RED.palette = (function() {
}
$("#palette-"+def.category).append(d);
d.onmousedown = function(e) { e.preventDefault(); }
d.onmousedown = function(e) { e.preventDefault(); };

setTooltipContent('', nt, d);

$(d).popover({
title:d.type,
placement:"right",
trigger: "hover",
delay: { show: 750, hide: 50 },
html: true,
container:'body',
content: $(($("script[data-help-name|='"+nt+"']").html()||"<h2>empty</h2><p>no information available</p>").trim())[2] // TODO: how to use jQuery to always select the first <p> within the html?
});
$(d).click(function() {
RED.nodes.selectNode(d.type);
var help = '<div class="node-help">'+($("script[data-help-name|='"+d.type+"']").html()||"")+"</div>";
$("#tab-info").html(help);
RED.sidebar.info.setHelpContent('', d.type);
});
$(d).draggable({
helper: 'clone',
@@ -113,7 +105,35 @@ RED.palette = (function() {
$(this).next().slideToggle();
$(this).children("i").toggleClass("expanded");
});
}
}

function setTooltipContent(prefix, key, elem) {
// server test switched off - test purposes only
var patt = new RegExp(/^[http|https]/);
var server = false && patt.test(location.protocol);

var options = {
title: elem.type,
placement: "right",
trigger: "hover",
delay: { show: 750, hide: 50 },
html: true,
container:'body',
content : ""
};

if (!server) {
data = $("script[data-help-name|='" + key + "']").html();
var firstP = $("<div/>").append(data).children("p").first().html();
options.content = firstP;
$(elem).popover(options);
} else {
$.get( "resources/help/" + key + ".html", function( data ) {
var firstP = $("<div/>").append(data).children("p").first().html();
options.content = firstP;
$(elem).popover(options);
});
}
}

+ 22
- 3
gui/red/ui/tab-info.js View File

@@ -78,14 +78,33 @@ RED.sidebar.info = (function() {
}
}
table += "</tbody></table><br/>";
table += '<div class="node-help">'+($("script[data-help-name|='"+node.type+"']").html()||"")+"</div>";
$("#tab-info").html(table);
this.setHelpContent(table, node.type);
}

function setHelpContent(prefix, key) {
// server test switched off - test purposes only
var patt = new RegExp(/^[http|https]/);
var server = false && patt.test(location.protocol);


prefix = prefix == "" ? "<h3>" + key + "</h3>" : prefix;
if (!server) {
data = $("script[data-help-name|='" + key + "']").html();
$("#tab-info").html(prefix + '<div class="node-help">' + data + '</div>');
} else {
$.get( "resources/help/" + key + ".html", function( data ) {
$("#tab-info").html(prefix + '<h2>' + key + '</h2><div class="node-help">' + data + '</div>');
}).fail(function () {
$("#tab-info").html(prefix);
});
}
}
return {
refresh:refresh,
clear: function() {
$("#tab-info").html("");
}
},
setHelpContent: setHelpContent
}
})();

+ 58
- 25
gui/red/ui/view.js View File

@@ -60,7 +60,7 @@ RED.view = (function() {
"yellow": "#F9DF31",
"blue": "#53A3F3",
"grey": "#d3d3d3"
}
};

var outer = d3.select("#chart")
.append("svg:svg")
@@ -108,7 +108,7 @@ RED.view = (function() {
moveTouchCenter = [
touch1['pageX']+(b/2),
touch1['pageY']+(a/2)
]
];
startTouchDistance = Math.sqrt((a*a)+(b*b));
} else {
var obj = d3.select(document.body);
@@ -568,6 +568,10 @@ RED.view = (function() {
nn.type = selected_tool;
nn._def = RED.nodes.getType(nn.type);
nn.id = RED.nodes.cppName(nn);

nn._def.defaults = nn._def.defaults ? nn._def.defaults : {};
nn._def.defaults.name = { value: nn.id };

nn.outputs = nn._def.outputs;
nn.changed = true;

@@ -729,8 +733,8 @@ RED.view = (function() {
node.x = 25
}
var rmlinks = RED.nodes.remove(node.id);
for (var i=0; i < rmlinks.length; i++) {
var link = rmlinks[i];
for (var j=0; j < rmlinks.length; j++) {
var link = rmlinks[j];
//console.log("delete link: " + link.source.id + ":" + link.sourcePort
// + " -> " + link.target.id + ":" + link.targetPort);
if (link.source == node) {
@@ -760,7 +764,7 @@ RED.view = (function() {
.on("mouseup", (function(d,n){return function(d){portMouseUp(d,1,n);}})(rect, n))
.on("touchend", (function(d,n){return function(d){portMouseUp(d,1,n);}})(rect, n))
.on("mouseover",function(d) { var port = d3.select(this); port.classed("port_hovered",(mouse_mode!=RED.state.JOINING || mousedown_port_type != 1 ));})
.on("mouseout",function(d) { var port = d3.select(this); port.classed("port_hovered",false);})
.on("mouseout",function(d) { var port = d3.select(this); port.classed("port_hovered",false);});
RED.nodes.removeLink(selected_link);
removedLinks.push(selected_link);
setDirty(true);
@@ -1003,7 +1007,7 @@ RED.view = (function() {
node.attr("id",d.id);
//var l = d._def.label;
//l = (typeof l === "function" ? l.call(d) : l)||"";
var l = d.id;
var l = d.name ? d.name : d.id;
d.w = Math.max(node_width,calculateTextWidth(l)+(d._def.inputs>0?7:0) );
d.h = Math.max(node_height,(Math.max(d.outputs,d._def.inputs)||0) * 15);

@@ -1123,7 +1127,7 @@ RED.view = (function() {

if ("right" == d._def.align) {
icon_group.attr('class','node_icon_group node_icon_group_'+d._def.align);
icon_shade_border.attr("d",function(d) { return "M 0 1 l 0 "+(d.h-2)})
icon_shade_border.attr("d",function(d) { return "M 0 1 l 0 "+(d.h-2)});
//icon.attr('class','node_icon node_icon_'+d._def.align);
//icon.attr('class','node_icon_shade node_icon_shade_'+d._def.align);
//icon.attr('class','node_icon_shade_border node_icon_shade_border_'+d._def.align);
@@ -1149,7 +1153,7 @@ RED.view = (function() {
// icon_shade.attr("x",function(d){return d.w-30});
// icon_shade_border.attr("d",function(d){return "M "+(d.w-30)+" 1 l 0 "+(d.h-2);});
//}
}
};
//icon.style("pointer-events","none");
icon_group.style("pointer-events","none");
@@ -1225,7 +1229,7 @@ RED.view = (function() {
if (d.resize) {
//var l = d._def.label;
//l = (typeof l === "function" ? l.call(d) : l)||"";
var l = d.id;
var l = d.name ? d.name : d.id;
d.w = Math.max(node_width,calculateTextWidth(l)+(d._def.inputs>0?7:0) );
d.h = Math.max(node_height,(Math.max(d.outputs,d._def.inputs)||0) * 15);
}
@@ -1277,8 +1281,9 @@ RED.view = (function() {
return d._def.label;
}
}
return ""; */
return d.id;
return "n.a.";
*/
return d.name ? d.name : d.id;
})
.attr('y', function(d){return (d.h/2)-1;})
.attr('class',function(d){
@@ -1337,7 +1342,7 @@ RED.view = (function() {
}
}
return ""; */
return d.id;
return d.name ? d.name : d.id;
});
if (!showStatus || !d.status) {
thisNode.selectAll('.node_status_group').style("display","none");
@@ -1404,7 +1409,7 @@ RED.view = (function() {

link.exit().remove();

var links = vis.selectAll(".link_path")
var links = vis.selectAll(".link_path");
links.attr("d",function(d){
var numOutputs = d.source.outputs || 1;
var sourcePort = d.sourcePort || 0;
@@ -1438,7 +1443,7 @@ RED.view = (function() {
" C "+(d.x1+scale*node_width)+" "+(d.y1+scaleY*node_height)+" "+
(d.x2-scale*node_width)+" "+(d.y2-scaleY*node_height)+" "+
(d.x2)+" "+d.y2;
})
});

link.classed("link_selected", function(d) { return d === selected_link || d.selected; });
link.classed("link_unknown",function(d) { return d.target.type == "unknown" || d.source.type == "unknown"});
@@ -1477,17 +1482,26 @@ RED.view = (function() {
function importNodes(newNodesStr,touchImport) {
var createNewIds = true;
// TODO: solve this more elegant as the system expects
var useStorage = false;
if ($("#node-input-arduino").prop('checked') === true) {
newNodesStr = RED.nodes.cppToJSON(newNodesStr);
nodesJSON = RED.nodes.cppToJSON(newNodesStr);
if (nodesJSON.count <= 0 || nodesJSON.skipped > 0) {
var note = "No (or not all) nodes imported, because some IDs existed already!";
RED.notify("<strong>Note</strong>: " + note, "warning");
}

newNodesStr = nodesJSON.data;
createNewIds = false;

if (useStorage) {
RED.storage.clear();
localStorage.setItem("audio_library_guitool", newNodesStr);
RED.storage.load();
redraw();
return;
}
}

try {
var result = RED.nodes.import(newNodesStr,createNewIds);
@@ -1560,33 +1574,37 @@ RED.view = (function() {
function showExportNodesDialog() {
mouse_mode = RED.state.EXPORT;
var nns = RED.nodes.createExportableNodeSet(moving_set);
$("#dialog-form").html($("script[data-template-name='export-clipboard-dialog']").html());
$("#node-input-export").val(JSON.stringify(nns));
$("#node-input-export").focus(function() {
//$("#dialog-form").html(getForm("dialog-form", "export-clipboard-dialog"));
var frm = getForm("dialog-form", "export-clipboard-dialog", function (d, f) {
$("#node-input-export").val(JSON.stringify(nns)).focus(function() {
var textarea = $(this);
textarea.select();
textarea.mouseup(function() {
textarea.unbind("mouseup");
return false;
});
});
}).focus();
$( "#dialog" ).dialog("option","title","Export nodes to clipboard").dialog( "open" );
$("#node-input-export").focus();
});
}

function showExportNodesLibraryDialog() {
mouse_mode = RED.state.EXPORT;
var nns = RED.nodes.createExportableNodeSet(moving_set);
$("#dialog-form").html($("script[data-template-name='export-library-dialog']").html());
//$("#dialog-form").html(this.getForm('export-library-dialog'));
getForm("dialog-form", "export-library-dialog", function(d, f) {
$("#node-input-filename").attr('nodes',JSON.stringify(nns));
$( "#dialog" ).dialog("option","title","Export nodes to library").dialog( "open" );
});
}

function showImportNodesDialog() {
mouse_mode = RED.state.IMPORT;
$("#dialog-form").html($("script[data-template-name='import-dialog']").html());
//$("#dialog-form").html(this.getForm('import-dialog'));
getForm("dialog-form", "import-dialog", function(d, f) {
$("#node-input-import").val("");
$( "#dialog" ).dialog("option","title","Import nodes").dialog( "open" );
});
}

function showRenameWorkspaceDialog(id) {
@@ -1607,6 +1625,20 @@ RED.view = (function() {
$( "#node-dialog-rename-workspace" ).dialog("open");
}

function getForm(formId, key, callback) {
var form = $("<h2>No form found.</h2>");
var frmPlugin = "resources/form/" + key + ".html";
$.get(frmPlugin, function(data) {
form = $("#" + formId);
$(form).empty();
$(form).append(data);
if(typeof callback == 'function') {
callback.call(this, form);
}
});
return form;
}

$("#node-dialog-rename-workspace form" ).submit(function(e) { e.preventDefault();});
$( "#node-dialog-rename-workspace" ).dialog({
modal: true,
@@ -1726,6 +1758,7 @@ RED.view = (function() {
RED.nodes.eachNode(function(n) { n.dirty = true;});
//TODO: subscribe/unsubscribe here
redraw();
}
},
getForm: getForm
};
})();

+ 43
- 0
gui/resources/nodes_def.json View File

@@ -0,0 +1,43 @@
{"nodes":[
{"type":"AudioInputI2S","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2s","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioInputAnalog","data":{"defaults":{"name":{"value":"new"}},"shortName":"adc","inputs":0,"outputs":1,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioInputI2Sslave","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2ss","inputs":0,"outputs":2,"category":"input-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioOutputI2S","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2s","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioOutputSPDIF","data":{"defaults":{"name":{"value":"new"}},"shortName":"spdif","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioOutputAnalog","data":{"defaults":{"name":{"value":"new"}},"shortName":"dac","inputs":1,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioOutputPWM","data":{"defaults":{"name":{"value":"new"}},"shortName":"pwm","inputs":1,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioOutputI2Sslave","data":{"defaults":{"name":{"value":"new"}},"shortName":"i2ss","inputs":2,"outputs":0,"category":"output-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioMixer4","data":{"defaults":{"name":{"value":"new"}},"shortName":"mixer","inputs":4,"outputs":1,"category":"mixer-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioPlayMemory","data":{"defaults":{"name":{"value":"new"}},"shortName":"playMem","inputs":0,"outputs":1,"category":"play-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioPlaySdWav","data":{"defaults":{"name":{"value":"new"}},"shortName":"playSdWav","inputs":0,"outputs":2,"category":"play-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioPlaySdRaw","data":{"defaults":{"name":{"value":"new"}},"shortName":"playSdRaw","inputs":0,"outputs":1,"category":"play-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioPlaySerialflashRaw","data":{"defaults":{"name":{"value":"new"}},"shortName":"playFlashRaw","inputs":0,"outputs":1,"category":"play-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioPlayQueue","data":{"defaults":{"name":{"value":"new"}},"shortName":"queue","inputs":0,"outputs":1,"category":"play-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioRecordQueue","data":{"defaults":{"name":{"value":"new"}},"shortName":"queue","inputs":1,"outputs":0,"category":"record-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioSynthWaveformSine","data":{"defaults":{"name":{"value":"new"}},"shortName":"sine","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioSynthWaveformSineModulated","data":{"defaults":{"name":{"value":"new"}},"shortName":"sine_fm","inputs":1,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioSynthWaveform","data":{"defaults":{"name":{"value":"new"}},"shortName":"waveform","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioSynthToneSweep","data":{"defaults":{"name":{"value":"new"}},"shortName":"tonesweep","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioSynthWaveformDc","data":{"defaults":{"name":{"value":"new"}},"shortName":"dc","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioSynthNoiseWhite","data":{"defaults":{"name":{"value":"new"}},"shortName":"noise","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioSynthNoisePink","data":{"defaults":{"name":{"value":"new"}},"shortName":"pink","inputs":0,"outputs":1,"category":"synth-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectFade","data":{"defaults":{"name":{"value":"new"}},"shortName":"fade","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectChorus","data":{"defaults":{"name":{"value":"new"}},"shortName":"chorus","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectFlange","data":{"defaults":{"name":{"value":"new"}},"shortName":"flange","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectEnvelope","data":{"defaults":{"name":{"value":"new"}},"shortName":"envelope","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectMultiply","data":{"defaults":{"name":{"value":"new"}},"shortName":"multiply","inputs":2,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectDelay","data":{"defaults":{"name":{"value":"new"}},"shortName":"delay","inputs":1,"outputs":8,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectDelayExternal","data":{"defaults":{"name":{"value":"new"}},"shortName":"delayExt","inputs":1,"outputs":8,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioEffectBitcrusher","data":{"shortName":"bitcrusher","inputs":1,"outputs":1,"category":"effect-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioFilterBiquad","data":{"defaults":{"name":{"value":"new"}},"shortName":"biquad","inputs":1,"outputs":1,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioFilterFIR","data":{"defaults":{"name":{"value":"new"}},"shortName":"fir","inputs":1,"outputs":1,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioFilterStateVariable","data":{"defaults":{"name":{"value":"new"}},"shortName":"filter","inputs":2,"outputs":3,"category":"filter-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioAnalyzePeak","data":{"defaults":{"name":{"value":"new"}},"shortName":"peak","inputs":1,"outputs":0,"category":"analyze-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioAnalyzeFFT256","data":{"defaults":{"name":{"value":"new"}},"shortName":"fft256","inputs":1,"outputs":0,"category":"analyze-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioAnalyzeFFT1024","data":{"defaults":{"name":{"value":"new"}},"shortName":"fft1024","inputs":1,"outputs":0,"category":"analyze-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioAnalyzeToneDetect","data":{"defaults":{"name":{"value":"new"}},"shortName":"tone","inputs":1,"outputs":0,"category":"analyze-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioAnalyzePrint","data":{"defaults":{"name":{"value":"new"}},"shortName":"print","inputs":1,"outputs":0,"category":"analyze-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioControlSGTL5000","data":{"defaults":{"name":{"value":"new"}},"shortName":"sgtl5000","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioControlWM8731","data":{"defaults":{"name":{"value":"new"}},"shortName":"wm8731","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}},
{"type":"AudioControlWM8731master","data":{"defaults":{"name":{"value":"new"}},"shortName":"wm8731m","inputs":0,"outputs":0,"category":"control-function","color":"#E6E0F8","icon":"arrow-in.png"}}
]}

+ 3
- 3
gui/style.css View File

@@ -97,7 +97,7 @@ a.brand img {

#palette {
background: #f3f3f3;
width: 140px;
width: 160px;
text-align: center;
-webkit-user-select: none;
-khtml-user-select: none;
@@ -220,7 +220,7 @@ a.brand img {
border: 2px solid #999;
background-position: 5% 50%;
background-repeat: no-repeat;
width: 90px;
width: 110px;
background-size: contain;
position: relative;
}
@@ -241,7 +241,7 @@ a.brand img {
border: 1px solid #999;
}
.palette_port_output {
left:85px;
left:105px;
}

.palette_node:hover .palette_port {

Loading…
Cancel
Save