aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/jsyn/ports/UnitInputPort.java
diff options
context:
space:
mode:
authorRubbaBoy <[email protected]>2020-07-06 02:33:28 -0400
committerPhil Burk <[email protected]>2020-10-30 11:19:34 -0700
commit46888fae6eb7b1dd386f7af7d101ead99ae61981 (patch)
tree8969bbfd68d2fb5c0d8b86da49ec2eca230a72ab /src/com/jsyn/ports/UnitInputPort.java
parentc51e92e813dd481603de078f0778e1f75db2ab05 (diff)
Restructured project, added gradle, JUnit, logger, and more
Added Gradle (and removed ant), modernized testing via the JUnit framework, moved standalone examples from the tests directory to a separate module, removed sparsely used Java logger and replaced it with SLF4J. More work could be done, however this is a great start to greatly improving the health of the codebase.
Diffstat (limited to 'src/com/jsyn/ports/UnitInputPort.java')
-rw-r--r--src/com/jsyn/ports/UnitInputPort.java254
1 files changed, 0 insertions, 254 deletions
diff --git a/src/com/jsyn/ports/UnitInputPort.java b/src/com/jsyn/ports/UnitInputPort.java
deleted file mode 100644
index 3eda1f6..0000000
--- a/src/com/jsyn/ports/UnitInputPort.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright 2009 Phil Burk, Mobileer Inc
- *
- * 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.
- */
-
-package com.jsyn.ports;
-
-import java.io.PrintStream;
-
-import com.softsynth.shared.time.ScheduledCommand;
-import com.softsynth.shared.time.TimeStamp;
-
-/**
- * A port that is used to pass values into a UnitGenerator.
- *
- * @author Phil Burk 2009 Mobileer Inc
- */
-public class UnitInputPort extends UnitBlockPort implements ConnectableInput, SettablePort {
- private double minimum = 0.0;
- private double maximum = 1.0;
- private double defaultValue = 0.0;
- private double[] setValues;
- private boolean valueAdded = false;
-
- /**
- * @param numParts typically 1, use 2 for stereo ports
- * @param name name that may be used in GUIs
- * @param defaultValue
- */
- public UnitInputPort(int numParts, String name, double defaultValue) {
- super(numParts, name, defaultValue);
- setDefault(defaultValue);
- setValues = new double[numParts];
- for (int i = 0; i < numParts; i++) {
- setValues[i] = defaultValue;
- }
- }
-
- public UnitInputPort(String name, double defaultValue) {
- this(1, name, defaultValue);
- }
-
- public UnitInputPort(String name) {
- this(1, name, 0.0);
- }
-
- public UnitInputPort(int numParts, String name) {
- this(numParts, name, 0.0);
- }
-
- @Override
- protected void makeParts(int numParts, double defaultValue) {
- parts = new InputMixingBlockPart[numParts];
- for (int i = 0; i < numParts; i++) {
- parts[i] = new InputMixingBlockPart(this, defaultValue);
- }
- }
-
- /**
- * This is used internally by the SynthesisEngine to execute units based on their connections.
- *
- * @param frameCount
- * @param start
- * @param limit
- */
- @Override
- public void pullData(long frameCount, int start, int limit) {
- for (PortBlockPart part : parts) {
- ((InputMixingBlockPart) part).pullData(frameCount, start, limit);
- }
- }
-
- @Override
- protected void setValueInternal(int partNum, double value) {
- super.setValueInternal(partNum, value);
- setValues[partNum] = value;
- }
-
- public void set(double value) {
- set(0, value);
- }
-
- public void set(final int partNum, final double value) {
- // Trigger exception now if out of range.
- setValues[partNum] = value;
- queueCommand(new ScheduledCommand() {
- @Override
- public void run() {
- setValueInternal(partNum, value);
- }
- });
- }
-
- public void set(double value, TimeStamp time) {
- set(0, value, time);
- }
-
- public void set(double value, double time) {
- set(0, value, time);
- }
-
- public void set(int partNum, double value, double time) {
- set(partNum, value, new TimeStamp(time));
- }
-
- @Override
- public void set(final int partNum, final double value, TimeStamp timeStamp) {
- // Trigger exception now if out of range.
- getValue(partNum);
- scheduleCommand(timeStamp, new ScheduledCommand() {
- @Override
- public void run() {
- setValueInternal(partNum, value);
- }
- });
- }
-
- /**
- * Value of a port based on the set() calls. Not affected by connected ports.
- *
- * @param partNum
- * @return value as set
- */
- @Override
- public double get(int partNum) {
- return setValues[partNum];
- }
-
- public double getMaximum() {
- return maximum;
- }
-
- /**
- * The minimum and maximum are only used when setting up knobs or other control systems. The
- * internal values are not clipped to this range.
- *
- * @param maximum
- */
- public void setMaximum(double maximum) {
- this.maximum = maximum;
- }
-
- public double getMinimum() {
- return minimum;
- }
-
- public void setMinimum(double minimum) {
- this.minimum = minimum;
- }
-
- public double getDefault() {
- return defaultValue;
- }
-
- public void setDefault(double defaultValue) {
- this.defaultValue = defaultValue;
- }
-
- /**
- * Convenience function for setting limits on a port. These limits are recommended values when
- * setting up a GUI. It is possible to set a port to a value outside these limits.
- *
- * @param minimum
- * @param value default value, will be clipped to min/max
- * @param maximum
- */
- public void setup(double minimum, double value, double maximum) {
- setMinimum(minimum);
- setMaximum(maximum);
- setDefault(value);
- set(value);
- }
-
- // Grab min, max, default from another port.
- public void setup(UnitInputPort other) {
- setup(other.getMinimum(), other.getDefault(), other.getMaximum());
- }
-
- public boolean isValueAdded() {
- return valueAdded;
- }
-
- /**
- * If set false then the set() value will be ignored when other ports are connected to this port.
- * The sum of the connected port values will be used instead.
- *
- * If set true then the set() value will be added to the sum of the connected port values.
- * This is useful when you want to modulate the set value.
- *
- * The default is false.
- *
- * @param valueAdded
- */
- public void setValueAdded(boolean valueAdded) {
- this.valueAdded = valueAdded;
- }
-
- public void connect(int thisPartNum, UnitOutputPort otherPort, int otherPartNum,
- TimeStamp timeStamp) {
- otherPort.connect(otherPartNum, this, thisPartNum, timeStamp);
- }
-
- /** Connect an input to an output port. */
- public void connect(int thisPartNum, UnitOutputPort otherPort, int otherPartNum) {
- // Typically connections are made from output to input because it is
- // more intuitive.
- otherPort.connect(otherPartNum, this, thisPartNum);
- }
-
- public void connect(UnitOutputPort otherPort) {
- connect(0, otherPort, 0);
- }
-
- @Override
- public void connect(ConnectableOutput other) {
- other.connect(this);
- }
-
- public void disconnect(int thisPartNum, UnitOutputPort otherPort, int otherPartNum) {
- otherPort.disconnect(otherPartNum, this, thisPartNum);
- }
-
- @Override
- public PortBlockPart getPortBlockPart() {
- return parts[0];
- }
-
- public ConnectableInput getConnectablePart(int i) {
- return parts[i];
- }
-
- @Override
- public void disconnect(ConnectableOutput other) {
- other.disconnect(this);
- }
-
- public void printConnections(PrintStream out, int level) {
- for (PortBlockPart part : parts) {
- ((InputMixingBlockPart) part).printConnections(out, level);
- }
- }
-
-}