- cinder::Noncopyable
- cinder::audio::Node
- cinder::audio::ChannelRouterNode
Node for mapping input channels to output channels.
ChannelRouterNode
allows one to route the channels of connected inputs to specific output channels, which can be useful for, among other things:
combining x number of
Node
's into an n-channel output signal that can be consumed by a multichannel output-device via
OutputDeviceNode
.
splitting a stereo
Node
into multiple outputs
The class is designed to be connected using the overloaded
operator>>
, similar to how typical
Node
's are connected but via one of the
route()
variants. The first variant takes an input channel index and an output channel index, and routes either all of the input's channels or as many as many channels are available based on the
ChannelRouterNode
's specified channel count (via its Node::Format() at construction). For example,
samplePlayer >> router->route( 0, 3 ); // routes channel 0 of samplePlayer to router's channel 3, taking as many channels from samplePlayer as possible.
samplePlayer >> router->route( 1, 0, 1 ); // routes channel 1 of samplePlayer to router's channel 0, taking only one channel.
Enums
Public Member Functions
Protected Member Functions
-
voiddisconnectInput (const NodeRef &input) override
-
voiddisconnectOutput (const NodeRef &output)
-
voidconfigureConnections ()
-
voidsetupProcessWithSumming ()
-
voidnotifyConnectionsDidChange ()
-
boolinputChannelsAreUnequal () const
-
voidinitializeImpl ()
-
voiduninitializeImpl ()
-
getSummingBuffer ()
-
const BufferDynamic *getSummingBuffer () const
Protected Attributes
-
std::list< Route >mRoutes