diff options
Diffstat (limited to 'Source/WebCore/Modules/webaudio/AudioNode.h')
-rw-r--r-- | Source/WebCore/Modules/webaudio/AudioNode.h | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/Source/WebCore/Modules/webaudio/AudioNode.h b/Source/WebCore/Modules/webaudio/AudioNode.h index 1536056a0..72f8a4af7 100644 --- a/Source/WebCore/Modules/webaudio/AudioNode.h +++ b/Source/WebCore/Modules/webaudio/AudioNode.h @@ -22,15 +22,12 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef AudioNode_h -#define AudioNode_h +#pragma once #include "AudioBus.h" #include "EventTarget.h" -#include <memory> +#include "ExceptionOr.h" #include <wtf/Forward.h> -#include <wtf/RefPtr.h> -#include <wtf/Vector.h> #define DEBUG_AUDIONODE_REFERENCES 0 @@ -41,8 +38,6 @@ class AudioNodeInput; class AudioNodeOutput; class AudioParam; -typedef int ExceptionCode; - // An AudioNode is the basic building block for handling audio within an AudioContext. // It may be an audio source, an intermediate processing module, or an audio destination. // Each AudioNode can have inputs and/or outputs. An AudioSourceNode has no inputs and a single output. @@ -53,11 +48,11 @@ class AudioNode : public EventTargetWithInlineData { public: enum { ProcessingSizeInFrames = 128 }; - AudioNode(AudioContext*, float sampleRate); + AudioNode(AudioContext&, float sampleRate); virtual ~AudioNode(); - AudioContext* context() { return m_context.get(); } - const AudioContext* context() const { return m_context.get(); } + AudioContext& context() { return m_context.get(); } + const AudioContext& context() const { return m_context.get(); } enum NodeType { NodeTypeUnknown, @@ -126,9 +121,9 @@ public: AudioNodeOutput* output(unsigned); // Called from main thread by corresponding JavaScript methods. - virtual void connect(AudioNode*, unsigned outputIndex, unsigned inputIndex, ExceptionCode&); - void connect(AudioParam*, unsigned outputIndex, ExceptionCode&); - virtual void disconnect(unsigned outputIndex, ExceptionCode&); + virtual ExceptionOr<void> connect(AudioNode&, unsigned outputIndex, unsigned inputIndex); + ExceptionOr<void> connect(AudioParam&, unsigned outputIndex); + virtual ExceptionOr<void> disconnect(unsigned outputIndex); virtual float sampleRate() const { return m_sampleRate; } @@ -166,21 +161,21 @@ public: void enableOutputsIfNecessary(); void disableOutputsIfNecessary(); - unsigned long channelCount(); - virtual void setChannelCount(unsigned long, ExceptionCode&); + unsigned channelCount(); + virtual ExceptionOr<void> setChannelCount(unsigned); String channelCountMode(); - void setChannelCountMode(const String&, ExceptionCode&); + ExceptionOr<void> setChannelCountMode(const String&); String channelInterpretation(); - void setChannelInterpretation(const String&, ExceptionCode&); + ExceptionOr<void> setChannelInterpretation(const String&); ChannelCountMode internalChannelCountMode() const { return m_channelCountMode; } AudioBus::ChannelInterpretation internalChannelInterpretation() const { return m_channelInterpretation; } // EventTarget - virtual EventTargetInterface eventTargetInterface() const override; - virtual ScriptExecutionContext* scriptExecutionContext() const override final; + EventTargetInterface eventTargetInterface() const override; + ScriptExecutionContext* scriptExecutionContext() const final; protected: // Inputs and outputs must be created before the AudioNode is initialized. @@ -198,7 +193,7 @@ protected: private: volatile bool m_isInitialized; NodeType m_nodeType; - RefPtr<AudioContext> m_context; + Ref<AudioContext> m_context; float m_sampleRate; Vector<std::unique_ptr<AudioNodeInput>> m_inputs; Vector<std::unique_ptr<AudioNodeOutput>> m_outputs; @@ -218,8 +213,8 @@ private: static int s_nodeCount[NodeTypeEnd]; #endif - virtual void refEventTarget() override { ref(); } - virtual void derefEventTarget() override { deref(); } + void refEventTarget() override { ref(); } + void derefEventTarget() override { deref(); } protected: unsigned m_channelCount; @@ -228,5 +223,3 @@ protected: }; } // namespace WebCore - -#endif // AudioNode_h |