simplifies AudioNode subtype declarations

This commit is contained in:
Spencer Russell 2014-06-26 12:21:01 -05:00
parent eabf9717aa
commit b07230919d
2 changed files with 3 additions and 13 deletions

View file

@ -35,9 +35,8 @@ type AudioNode{T<:AudioRenderer}
end_cond::Condition end_cond::Condition
renderer::T renderer::T
function AudioNode(renderer::AudioRenderer) AudioNode(renderer::AudioRenderer) = new(true, Condition(), renderer)
new(true, Condition(), renderer) AudioNode(args...) = AudioNode{T}(T(args...))
end
end end
function render(node::AudioNode, input::AudioBuf, info::DeviceInfo) function render(node::AudioNode, input::AudioBuf, info::DeviceInfo)

View file

@ -2,7 +2,6 @@
type NullRenderer <: AudioRenderer end type NullRenderer <: AudioRenderer end
typealias NullNode AudioNode{NullRenderer} typealias NullNode AudioNode{NullRenderer}
NullNode() = NullNode(NullRenderer())
export NullNode export NullNode
function render(node::NullRenderer, device_input::AudioBuf, info::DeviceInfo) function render(node::NullRenderer, device_input::AudioBuf, info::DeviceInfo)
@ -83,11 +82,10 @@ type MixRenderer <: AudioRenderer
buf::AudioBuf buf::AudioBuf
MixRenderer(inputs) = new(inputs, AudioSample[]) MixRenderer(inputs) = new(inputs, AudioSample[])
MixRenderer() = MixRenderer(AudioNode[])
end end
typealias AudioMixer AudioNode{MixRenderer} typealias AudioMixer AudioNode{MixRenderer}
AudioMixer{T<:AudioNode}(inputs::Vector{T}) = AudioMixer(MixRenderer(inputs))
AudioMixer() = AudioMixer(AudioNode[])
export AudioMixer export AudioMixer
function render(node::MixRenderer, device_input::AudioBuf, info::DeviceInfo) function render(node::MixRenderer, device_input::AudioBuf, info::DeviceInfo)
@ -137,7 +135,6 @@ function render(node::GainRenderer, device_input::AudioBuf, info::DeviceInfo)
end end
typealias Gain AudioNode{GainRenderer} typealias Gain AudioNode{GainRenderer}
Gain(in_node::AudioNode, gain::Real) = Gain(GainRenderer(in_node, gain))
export Gain export Gain
@ -154,7 +151,6 @@ type ArrayRenderer <: AudioRenderer
end end
typealias ArrayPlayer AudioNode{ArrayRenderer} typealias ArrayPlayer AudioNode{ArrayRenderer}
ArrayPlayer(arr::AudioBuf) = ArrayPlayer(ArrayRenderer(arr))
export ArrayPlayer export ArrayPlayer
function render(node::ArrayRenderer, device_input::AudioBuf, info::DeviceInfo) function render(node::ArrayRenderer, device_input::AudioBuf, info::DeviceInfo)
@ -200,7 +196,6 @@ end
type WhiteNoiseRenderer <: AudioRenderer end type WhiteNoiseRenderer <: AudioRenderer end
typealias WhiteNoise AudioNode{WhiteNoiseRenderer} typealias WhiteNoise AudioNode{WhiteNoiseRenderer}
WhiteNoise() = WhiteNoise(WhiteNoiseRenderer())
export WhiteNoise export WhiteNoise
function render(node::WhiteNoiseRenderer, device_input::AudioBuf, info::DeviceInfo) function render(node::WhiteNoiseRenderer, device_input::AudioBuf, info::DeviceInfo)
@ -222,7 +217,6 @@ function render(node::InputRenderer, device_input::AudioBuf, info::DeviceInfo)
end end
typealias AudioInput AudioNode{InputRenderer} typealias AudioInput AudioNode{InputRenderer}
AudioInput(channel::Int) = AudioInput(InputRenderer(channel))
export AudioInput export AudioInput
#### Ramp #### #### Ramp ####
@ -237,9 +231,6 @@ type LinRampRenderer <: AudioRenderer
end end
typealias LinRamp AudioNode{LinRampRenderer} typealias LinRamp AudioNode{LinRampRenderer}
function LinRamp(start::Real, finish::Real, dur::Real)
LinRamp(LinRampRenderer(start, finish, dur))
end
export LinRamp export LinRamp