Line data Source code
1 : /* THIS FILE IS AUTOGENERATED FROM BiquadFilterNode.webidl BY Codegen.py - DO NOT EDIT */
2 :
3 : #ifndef mozilla_dom_BiquadFilterNodeBinding_h
4 : #define mozilla_dom_BiquadFilterNodeBinding_h
5 :
6 : #include "AudioNodeBinding.h"
7 : #include "js/RootingAPI.h"
8 : #include "jspubtd.h"
9 : #include "mozilla/ErrorResult.h"
10 : #include "mozilla/dom/BindingDeclarations.h"
11 : #include "mozilla/dom/Nullable.h"
12 :
13 : namespace mozilla {
14 : namespace dom {
15 :
16 : class BiquadFilterNode;
17 : struct BiquadFilterNodeAtoms;
18 : struct BiquadFilterOptionsAtoms;
19 : struct NativePropertyHooks;
20 : class ProtoAndIfaceCache;
21 :
22 : } // namespace dom
23 : } // namespace mozilla
24 :
25 : namespace mozilla {
26 : namespace dom {
27 :
28 : enum class BiquadFilterType : uint8_t {
29 : Lowpass,
30 : Highpass,
31 : Bandpass,
32 : Lowshelf,
33 : Highshelf,
34 : Peaking,
35 : Notch,
36 : Allpass,
37 : EndGuard_
38 : };
39 :
40 : namespace BiquadFilterTypeValues {
41 : extern const EnumEntry strings[9];
42 : } // namespace BiquadFilterTypeValues
43 :
44 : bool
45 : ToJSValue(JSContext* aCx, BiquadFilterType aArgument, JS::MutableHandle<JS::Value> aValue);
46 :
47 :
48 0 : struct BiquadFilterOptions : public AudioNodeOptions
49 : {
50 : MOZ_INIT_OUTSIDE_CTOR float mQ;
51 : MOZ_INIT_OUTSIDE_CTOR float mDetune;
52 : MOZ_INIT_OUTSIDE_CTOR float mFrequency;
53 : MOZ_INIT_OUTSIDE_CTOR float mGain;
54 : MOZ_INIT_OUTSIDE_CTOR BiquadFilterType mType;
55 :
56 : BiquadFilterOptions();
57 :
58 0 : explicit inline BiquadFilterOptions(const FastDictionaryInitializer& )
59 0 : : AudioNodeOptions(FastDictionaryInitializer())
60 : {
61 : // Do nothing here; this is used by our "Fast" subclass
62 0 : }
63 :
64 : explicit inline BiquadFilterOptions(const BiquadFilterOptions& aOther)
65 : {
66 : *this = aOther;
67 : }
68 :
69 : bool
70 : Init(JSContext* cx, JS::Handle<JS::Value> val, const char* sourceDescription = "Value", bool passedToJSImpl = false);
71 :
72 : bool
73 : Init(const nsAString& aJSON);
74 :
75 : bool
76 : ToObjectInternal(JSContext* cx, JS::MutableHandle<JS::Value> rval) const;
77 :
78 : bool
79 : ToJSON(nsAString& aJSON) const;
80 :
81 : void
82 : TraceDictionary(JSTracer* trc);
83 :
84 : BiquadFilterOptions&
85 : operator=(const BiquadFilterOptions& aOther);
86 :
87 : private:
88 : static bool
89 : InitIds(JSContext* cx, BiquadFilterOptionsAtoms* atomsCache);
90 : };
91 :
92 : namespace binding_detail {
93 0 : struct FastBiquadFilterOptions : public BiquadFilterOptions
94 : {
95 0 : inline FastBiquadFilterOptions()
96 0 : : BiquadFilterOptions(FastDictionaryInitializer())
97 : {
98 : // Doesn't matter what int we pass to the parent constructor
99 0 : }
100 : };
101 : } // namespace binding_detail
102 :
103 :
104 : namespace BiquadFilterNodeBinding {
105 :
106 : typedef mozilla::dom::BiquadFilterNode NativeType;
107 :
108 : bool
109 : ConstructorEnabled(JSContext* aCx, JS::Handle<JSObject*> aObj);
110 :
111 : JSObject*
112 : DefineDOMInterface(JSContext* aCx, JS::Handle<JSObject*> aGlobal, JS::Handle<jsid> id, bool aDefineOnGlobal);
113 :
114 : const JSClass*
115 : GetJSClass();
116 :
117 : bool
118 : Wrap(JSContext* aCx, mozilla::dom::BiquadFilterNode* aObject, nsWrapperCache* aCache, JS::Handle<JSObject*> aGivenProto, JS::MutableHandle<JSObject*> aReflector);
119 :
120 : template <class T>
121 0 : inline JSObject* Wrap(JSContext* aCx, T* aObject, JS::Handle<JSObject*> aGivenProto)
122 : {
123 0 : JS::Rooted<JSObject*> reflector(aCx);
124 0 : return Wrap(aCx, aObject, aObject, aGivenProto, &reflector) ? reflector.get() : nullptr;
125 : }
126 :
127 : // We declare this as an array so that retrieving a pointer to this
128 : // binding's property hooks only requires compile/link-time resolvable
129 : // address arithmetic. Declaring it as a pointer instead would require
130 : // doing a run-time load to fetch a pointer to this binding's property
131 : // hooks. And then structures which embedded a pointer to this structure
132 : // would require a run-time load for proper initialization, which would
133 : // then induce static constructors. Lots of static constructors.
134 : extern const NativePropertyHooks sNativePropertyHooks[];
135 :
136 : void
137 : CreateInterfaceObjects(JSContext* aCx, JS::Handle<JSObject*> aGlobal, ProtoAndIfaceCache& aProtoAndIfaceCache, bool aDefineOnGlobal);
138 :
139 : JS::Handle<JSObject*>
140 : GetProtoObjectHandle(JSContext* aCx);
141 :
142 : JS::Handle<JSObject*>
143 : GetConstructorObjectHandle(JSContext* aCx, bool aDefineOnGlobal = true);
144 :
145 : JSObject*
146 : GetConstructorObject(JSContext* aCx);
147 :
148 : } // namespace BiquadFilterNodeBinding
149 :
150 :
151 :
152 : } // namespace dom
153 : } // namespace mozilla
154 :
155 : #endif // mozilla_dom_BiquadFilterNodeBinding_h
|