DelayNode::DelayNode(AudioContext* aContext, double aMaxDelay) : AudioNode(aContext) , mDelay(new AudioParam(this, SendDelayToStream, 0.0f, 0.0f, float(aMaxDelay))) { DelayNodeEngine* engine = new DelayNodeEngine(aContext->Destination()); mStream = aContext->Graph()->CreateAudioNodeStream(engine, MediaStreamGraph::INTERNAL_STREAM); engine->SetSourceStream(static_cast<AudioNodeStream*> (mStream.get())); AudioNodeStream* ns = static_cast<AudioNodeStream*>(mStream.get()); ns->SetDoubleParameter(DelayNodeEngine::MAX_DELAY, aMaxDelay); }
DelayNode::DelayNode(AudioContext* aContext, double aMaxDelay) : AudioNode(aContext, 2, ChannelCountMode::Max, ChannelInterpretation::Speakers) , mDelay(new AudioParam(MOZ_THIS_IN_INITIALIZER_LIST(), SendDelayToStream, 0.0f)) { DelayNodeEngine* engine = new DelayNodeEngine(this, aContext->Destination(), aContext->SampleRate() * aMaxDelay); mStream = aContext->Graph()->CreateAudioNodeStream(engine, MediaStreamGraph::INTERNAL_STREAM); engine->SetSourceStream(static_cast<AudioNodeStream*> (mStream.get())); }
DelayNode::DelayNode(AudioContext* aContext, double aMaxDelay) : AudioNode(aContext, 2, ChannelCountMode::Max, ChannelInterpretation::Speakers) , mMediaStreamGraphUpdateIndexAtLastInputConnection(0) , mDelay(new AudioParam(this, SendDelayToStream, 0.0f)) { DelayNodeEngine* engine = new DelayNodeEngine(this, aContext->Destination()); mStream = aContext->Graph()->CreateAudioNodeStream(engine, MediaStreamGraph::INTERNAL_STREAM); engine->SetSourceStream(static_cast<AudioNodeStream*> (mStream.get())); AudioNodeStream* ns = static_cast<AudioNodeStream*>(mStream.get()); ns->SetDoubleParameter(DelayNodeEngine::MAX_DELAY, aMaxDelay); }