content/media/webaudio/ScriptProcessorNode.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* vim:set ts=2 sw=2 sts=2 et cindent: */
     3 /* This Source Code Form is subject to the terms of the Mozilla Public
     4  * License, v. 2.0. If a copy of the MPL was not distributed with this
     5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 #ifndef ScriptProcessorNode_h_
     8 #define ScriptProcessorNode_h_
    10 #include "AudioNode.h"
    11 #include "nsAutoPtr.h"
    13 namespace mozilla {
    14 namespace dom {
    16 class AudioContext;
    17 class SharedBuffers;
    19 class ScriptProcessorNode : public AudioNode
    20 {
    21 public:
    22   ScriptProcessorNode(AudioContext* aContext,
    23                       uint32_t aBufferSize,
    24                       uint32_t aNumberOfInputChannels,
    25                       uint32_t aNumberOfOutputChannels);
    26   virtual ~ScriptProcessorNode();
    28   NS_DECL_ISUPPORTS_INHERITED
    30   IMPL_EVENT_HANDLER(audioprocess)
    32   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
    34   virtual void Connect(AudioNode& aDestination, uint32_t aOutput,
    35                        uint32_t aInput, ErrorResult& aRv) MOZ_OVERRIDE
    36   {
    37     AudioNode::Connect(aDestination, aOutput, aInput, aRv);
    38     if (!aRv.Failed()) {
    39       MarkActive();
    40     }
    41   }
    43   virtual void Connect(AudioParam& aDestination, uint32_t aOutput,
    44                        ErrorResult& aRv) MOZ_OVERRIDE
    45   {
    46     AudioNode::Connect(aDestination, aOutput, aRv);
    47     if (!aRv.Failed()) {
    48       MarkActive();
    49     }
    50   }
    52   virtual void Disconnect(uint32_t aOutput, ErrorResult& aRv) MOZ_OVERRIDE
    53   {
    54     AudioNode::Disconnect(aOutput, aRv);
    55     if (!aRv.Failed() && OutputNodes().IsEmpty() && OutputParams().IsEmpty()) {
    56       MarkInactive();
    57     }
    58   }
    60   virtual void SetChannelCount(uint32_t aChannelCount, ErrorResult& aRv) MOZ_OVERRIDE
    61   {
    62     if (aChannelCount != ChannelCount()) {
    63       aRv.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
    64     }
    65     return;
    66   }
    67   virtual void SetChannelCountModeValue(ChannelCountMode aMode, ErrorResult& aRv) MOZ_OVERRIDE
    68   {
    69     if (aMode != ChannelCountMode::Explicit) {
    70       aRv.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
    71     }
    72     return;
    73   }
    75   uint32_t BufferSize() const
    76   {
    77     return mBufferSize;
    78   }
    80   SharedBuffers* GetSharedBuffers() const
    81   {
    82     return mSharedBuffers;
    83   }
    85   uint32_t NumberOfOutputChannels() const
    86   {
    87     return mNumberOfOutputChannels;
    88   }
    90   using DOMEventTargetHelper::DispatchTrustedEvent;
    92   virtual const char* NodeType() const
    93   {
    94     return "ScriptProcessorNode";
    95   }
    97   virtual size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE;
    98   virtual size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE;
   100 private:
   101   nsAutoPtr<SharedBuffers> mSharedBuffers;
   102   const uint32_t mBufferSize;
   103   const uint32_t mNumberOfOutputChannels;
   104 };
   106 }
   107 }
   109 #endif

mercurial