aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/jsyn/unitgen/Circuit.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/jsyn/unitgen/Circuit.java')
-rw-r--r--src/com/jsyn/unitgen/Circuit.java42
1 files changed, 39 insertions, 3 deletions
diff --git a/src/com/jsyn/unitgen/Circuit.java b/src/com/jsyn/unitgen/Circuit.java
index a501600..c5a1dcf 100644
--- a/src/com/jsyn/unitgen/Circuit.java
+++ b/src/com/jsyn/unitgen/Circuit.java
@@ -4,9 +4,9 @@
* 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.
@@ -17,17 +17,21 @@
package com.jsyn.unitgen;
import java.util.ArrayList;
+import java.util.LinkedHashMap;
import com.jsyn.engine.SynthesisEngine;
+import com.jsyn.ports.UnitPort;
/**
* Contains a list of units that are executed together.
- *
+ *
* @author Phil Burk (C) 2009 Mobileer Inc
*/
public class Circuit extends UnitGenerator {
private ArrayList<UnitGenerator> units = new ArrayList<UnitGenerator>();
+ private final LinkedHashMap<String, UnitPort> portAliases = new LinkedHashMap<String, UnitPort>();
+
@Override
public void generate(int start, int limit) {
for (UnitGenerator unit : units) {
@@ -57,6 +61,11 @@ public class Circuit extends UnitGenerator {
}
}
+ /**
+ * @deprecated ignored, frameRate comes from the SynthesisEngine
+ * @param rate
+ */
+ @Deprecated
@Override
public void setFrameRate(int frameRate) {
super.setFrameRate(frameRate);
@@ -83,4 +92,31 @@ public class Circuit extends UnitGenerator {
public void usePreset(int presetIndex) {
}
+
+
+ /**
+ * Add an alternate name for looking up a port.
+ * @param port
+ * @param alias
+ */
+ public void addPortAlias(UnitPort port, String alias) {
+ // Store in a hash table by an alternate name.
+ portAliases.put(alias.toLowerCase(), port);
+ }
+
+
+ /**
+ * Case-insensitive search for a port by its name or alias.
+ * @param portName
+ * @return matching port or null
+ */
+ @Override
+ public UnitPort getPortByName(String portName) {
+ UnitPort port = super.getPortByName(portName);
+ if (port == null) {
+ port = portAliases.get(portName.toLowerCase());
+ }
+ return port;
+ }
+
}