net.beadsproject.beads.ugens
Class PolyLimit

java.lang.Object
  extended by net.beadsproject.beads.core.Bead
      extended by net.beadsproject.beads.core.UGen
          extended by net.beadsproject.beads.ugens.PolyLimit

public class PolyLimit
extends UGen

The Class PolyLimit is a mixer which can be used to keep a limit on the number of UGens connected to it. An upper limit is given. If a new UGen is added but this takes the number of connected UGens over that upper limit then the oldest connected UGen is dropped in order to allow the new UGen to be connected.


Nested Class Summary
 
Nested classes/interfaces inherited from class net.beadsproject.beads.core.UGen
UGen.OutputInitializationRegime, UGen.OutputPauseRegime
 
Field Summary
 
Fields inherited from class net.beadsproject.beads.core.UGen
bufferSize, bufIn, bufOut, context, ins, outputInitializationRegime, outputPauseRegime, outs
 
Constructor Summary
PolyLimit(AudioContext context, int inouts, int maxInputs)
          Instantiates a new PolyLimit.
 
Method Summary
 void addInput(UGen sourceUGen)
          Overrides UGen.addInput(UGen) such that if a new UGen pushes the total number of connected UGens above the upper limit, the oldest UGen is removed.
 void calculateBuffer()
          Called by the signal chain to update this UGen's ouput data.
 int getMaxInputs()
          Gets the max inputs.
 void removeAllConnections(UGen sourceUGen)
          Disconnects the specified UGen from this UGen at all inputs.
 void setMaxInputs(int maxInputs)
          Sets the max inputs.
 
Methods inherited from class net.beadsproject.beads.core.UGen
addDependent, addInput, clearDependents, clearInputConnections, containsInput, crossfadeInput, getConnectedInputs, getContext, getEnvelopes, getIns, getNumberOfConnectedUGens, getNumberOfDependents, getOutBuffer, getOuts, getTimeTakenLastUpdate, getValue, getValue, getValueDouble, getValueDouble, initializeOuts, isTimerMode, isUpdated, noInputs, pause, printInBuffers, printInputList, printOutBuffers, removeConnection, removeDependent, setOutsToPause, setTimerMode, setValue, update, zeroIns, zeroOuts
 
Methods inherited from class net.beadsproject.beads.core.Bead
getKillListener, getName, isDeleted, isPaused, kill, message, messageReceived, setKillListener, setName, start, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PolyLimit

public PolyLimit(AudioContext context,
                 int inouts,
                 int maxInputs)
Instantiates a new PolyLimit.

Parameters:
context - the context.
inouts - the number of channels.
maxInputs - the max number of connected inputs.
Method Detail

addInput

public void addInput(UGen sourceUGen)
Overrides UGen.addInput(UGen) such that if a new UGen pushes the total number of connected UGens above the upper limit, the oldest UGen is removed.

Overrides:
addInput in class UGen
Parameters:
sourceUGen - the UGen to connect to this UGen.

removeAllConnections

public void removeAllConnections(UGen sourceUGen)
Description copied from class: UGen
Disconnects the specified UGen from this UGen at all inputs.

Overrides:
removeAllConnections in class UGen
Parameters:
sourceUGen - the UGen to disconnect.

getMaxInputs

public int getMaxInputs()
Gets the max inputs.

Returns:
the max inputs

setMaxInputs

public void setMaxInputs(int maxInputs)
Sets the max inputs.

Parameters:
maxInputs - the new max inputs

calculateBuffer

public void calculateBuffer()
Description copied from class: UGen
Called by the signal chain to update this UGen's ouput data. Subclassses of UGen should implement the UGen's DSP perform routine here. In general this involves grabbing data from UGen.bufIn and putting data into UGen.bufOut in some way. UGen.bufIn and UGen.bufOut are 2D arrays of floats of the form float[numChannels][bufferSize]. The length of the buffers is given by UGen.bufferSize, and the number of channels of the input and output buffers are given by UGen.ins and UGen.outs respectively.

Specified by:
calculateBuffer in class UGen