content/media/webaudio/DynamicsCompressorNode.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 DynamicsCompressorNode_h_
     8 #define DynamicsCompressorNode_h_
    10 #include "AudioNode.h"
    11 #include "AudioParam.h"
    13 namespace mozilla {
    14 namespace dom {
    16 class AudioContext;
    18 class DynamicsCompressorNode : public AudioNode
    19 {
    20 public:
    21   explicit DynamicsCompressorNode(AudioContext* aContext);
    23   NS_DECL_ISUPPORTS_INHERITED
    24   NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DynamicsCompressorNode, AudioNode)
    26   virtual JSObject* WrapObject(JSContext* aCx) MOZ_OVERRIDE;
    28   AudioParam* Threshold() const
    29   {
    30     return mThreshold;
    31   }
    33   AudioParam* Knee() const
    34   {
    35     return mKnee;
    36   }
    38   AudioParam* Ratio() const
    39   {
    40     return mRatio;
    41   }
    43   AudioParam* Reduction() const
    44   {
    45     return mReduction;
    46   }
    48   AudioParam* Attack() const
    49   {
    50     return mAttack;
    51   }
    53   // Called GetRelease to prevent clashing with the nsISupports::Release name
    54   AudioParam* GetRelease() const
    55   {
    56     return mRelease;
    57   }
    59   virtual const char* NodeType() const
    60   {
    61     return "DynamicsCompressorNode";
    62   }
    64   virtual size_t SizeOfExcludingThis(MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE;
    65   virtual size_t SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const MOZ_OVERRIDE;
    67 private:
    68   static void SendThresholdToStream(AudioNode* aNode);
    69   static void SendKneeToStream(AudioNode* aNode);
    70   static void SendRatioToStream(AudioNode* aNode);
    71   static void SendAttackToStream(AudioNode* aNode);
    72   static void SendReleaseToStream(AudioNode* aNode);
    74 private:
    75   nsRefPtr<AudioParam> mThreshold;
    76   nsRefPtr<AudioParam> mKnee;
    77   nsRefPtr<AudioParam> mRatio;
    78   nsRefPtr<AudioParam> mReduction;
    79   nsRefPtr<AudioParam> mAttack;
    80   nsRefPtr<AudioParam> mRelease;
    81 };
    83 }
    84 }
    86 #endif

mercurial