void AudioNode::setChannelCount(unsigned long channelCount, ExceptionCode& ec) { ASSERT(isMainThread()); AudioContext::AutoLocker locker(context()); if (channelCount > 0 && channelCount <= AudioContext::maxNumberOfChannels()) { if (m_channelCount != channelCount) { m_channelCount = channelCount; if (m_channelCountMode != Max) updateChannelsForInputs(); } } else ec = INVALID_STATE_ERR; }
void AudioNode::setChannelCountMode(ContextGraphLock& g, ChannelCountMode mode) { if (mode >= ChannelCountMode::End || !g.context()) { throw std::invalid_argument("No context specified"); } else { if (m_channelCountMode != mode) { m_channelCountMode = mode; updateChannelsForInputs(g); } } }
void AudioNode::setChannelCount(unsigned long channelCount, ExceptionState& exceptionState) { ASSERT(isMainThread()); AudioContext::AutoLocker locker(context()); if (channelCount > 0 && channelCount <= AudioContext::maxNumberOfChannels()) { if (m_channelCount != channelCount) { m_channelCount = channelCount; if (m_channelCountMode != Max) updateChannelsForInputs(); } } else { exceptionState.throwDOMException( NotSupportedError, "channel count (" + String::number(channelCount) + ") must be between 1 and " + String::number(AudioContext::maxNumberOfChannels()) + "."); } }
void AudioNode::setChannelCountMode(const String& mode, ExceptionCode& ec) { ASSERT(isMainThread()); AudioContext::AutoLocker locker(context()); ChannelCountMode oldMode = m_channelCountMode; if (mode == "max") m_channelCountMode = Max; else if (mode == "clamped-max") m_channelCountMode = ClampedMax; else if (mode == "explicit") m_channelCountMode = Explicit; else ec = INVALID_STATE_ERR; if (m_channelCountMode != oldMode) updateChannelsForInputs(); }
void AudioNode::setChannelCount(ContextGraphLock& g, unsigned long channelCount) { if (!g.context()) { throw std::invalid_argument("No context specified"); } if (channelCount > 0 && channelCount <= AudioContext::maxNumberOfChannels) { if (m_channelCount != channelCount) { m_channelCount = channelCount; if (m_channelCountMode != ChannelCountMode::Max) updateChannelsForInputs(g); } return; } throw std::logic_error("Should not be reached"); }
void StereoPannerHandler::setChannelCount(unsigned long channelCount, ExceptionState& exceptionState) { DCHECK(isMainThread()); BaseAudioContext::AutoLocker locker(context()); // A PannerNode only supports 1 or 2 channels if (channelCount > 0 && channelCount <= 2) { if (m_channelCount != channelCount) { m_channelCount = channelCount; if (internalChannelCountMode() != Max) updateChannelsForInputs(); } } else { exceptionState.throwDOMException( NotSupportedError, ExceptionMessages::indexOutsideRange<unsigned long>( "channelCount", channelCount, 1, ExceptionMessages::InclusiveBound, 2, ExceptionMessages::InclusiveBound)); } }
void AudioNode::setChannelCountMode(const String& mode, ExceptionState& exceptionState) { ASSERT(isMainThread()); AudioContext::AutoLocker locker(context()); ChannelCountMode oldMode = m_channelCountMode; if (mode == "max") { m_channelCountMode = Max; } else if (mode == "clamped-max") { m_channelCountMode = ClampedMax; } else if (mode == "explicit") { m_channelCountMode = Explicit; } else { ASSERT_NOT_REACHED(); } if (m_channelCountMode != oldMode) updateChannelsForInputs(); }
void AudioNode::setChannelCountMode(const String& mode, ExceptionState& exceptionState) { ASSERT(isMainThread()); AudioContext::AutoLocker locker(context()); ChannelCountMode oldMode = m_channelCountMode; if (mode == "max") { m_channelCountMode = Max; } else if (mode == "clamped-max") { m_channelCountMode = ClampedMax; } else if (mode == "explicit") { m_channelCountMode = Explicit; } else { exceptionState.throwDOMException( InvalidStateError, "invalid mode '" + mode + "'; must be 'max', 'clamped-max', or 'explicit'."); } if (m_channelCountMode != oldMode) updateChannelsForInputs(); }