WindowedMultiInOut

trait WindowedMultiInOut extends Node

This is a building block for window processing UGens where there are multiple hot inlets or outlets. It can also be used when there is only one hot inlet, but other inlets are needed for filling the window buffer.

trait Node
class Object
trait Matchable
class Any

Value members

Abstract methods

protected def flushOut(): Boolean

Flush all outlets. Returns true if ''all'' of them have been successfully flushed.

Flush all outlets. Returns true if ''all'' of them have been successfully flushed.

protected def isHotIn(inlet: Inlet[_]): Boolean

Whether an inlet constitutes a crucial input whose closure should result in stage termination.

Whether an inlet constitutes a crucial input whose closure should result in stage termination.

protected def mainInAvailable: Int

The number of frames available for input window processing. This is used before calling readIntoWindow.

The number of frames available for input window processing. This is used before calling readIntoWindow.

protected def mainInDone: Boolean

Whether crucial inputs are done and thus the output should be flushed and the stage terminated.

Whether crucial inputs are done and thus the output should be flushed and the stage terminated.

protected def outAvailable: Int

The number of frames available for output window processing. This is used before calling writeFromWindow.

The number of frames available for output window processing. This is used before calling writeFromWindow.

protected def outDone: Boolean

Whether all outputs are done and thus the stage should be terminated.

Whether all outputs are done and thus the stage should be terminated.

protected def processWindow(): Unit

Called after a window has been fully read in.

Called after a window has been fully read in.

protected def readIntoWindow(n: Int): Unit

Reads in a number of frames.

Reads in a number of frames.

protected def readWinSize: Long

The number of frames to read in per window.

The number of frames to read in per window.

protected def tryObtainWinParams(): Boolean

Tries to prepare the parameters for the next window. If successful, returns true otherwise false. If successful, it must be possible to successively call readWinSize. Most likely, the implementation will allocate an internal window buffer here.

Tries to prepare the parameters for the next window. If successful, returns true otherwise false. If successful, it must be possible to successively call readWinSize. Most likely, the implementation will allocate an internal window buffer here.

protected def writeFromWindow(n: Int): Unit

Writes out a number of frames.

Writes out a number of frames.

protected def writeWinSize: Long

The number of frames to write out per window. This is polled once after processWindow.

The number of frames to write out per window. This is polled once after processWindow.

Concrete methods

protected def onDone(inlet: Inlet[_]): Unit
protected def onDone(outlet: Outlet[_]): Unit
@tailrec
final protected def process(): Unit

Inherited methods

def completeAsync(): Future[Unit]
Inherited from:
Node
def failAsync(ex: Exception): Unit
Inherited from:
Node
def launchAsync(): Future[Unit]
Inherited from:
Node
Inherited from:
Node
final override def postStop(): Unit

Invoked by Akka after processing of external events stopped because the operator is about to stop or fail. Calls stopped and then removes the node from the control.

Invoked by Akka after processing of external events stopped because the operator is about to stop or fail. Calls stopped and then removes the node from the control.

Definition Classes
Inherited from:
Node
final override def preStart(): Unit

Final so we don't accidentally place code here. In order to initialize state, use NodeHasInitImpl and implement init.

Final so we don't accidentally place code here. In order to initialize state, use NodeHasInitImpl and implement init.

Definition Classes
Inherited from:
Node
def shape: Shape
Inherited from:
Node
protected def stopped(): Unit

Subclasses can override this

Subclasses can override this

Inherited from:
Node

Concrete fields

final protected var readOff: Long
final protected var readRem: Long
final protected var writeOff: Long
final protected var writeRem: Long

Implicits

Inherited implicits

implicit protected def allocator: Allocator
Inherited from:
Node
implicit protected def control: Control
Inherited from:
Node