Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: Source/modules/webaudio/PannerNode.h

Issue 205173002: Move webaudio to oilpan (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010, Google Inc. All rights reserved. 2 * Copyright (C) 2010, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 }; 54 };
55 55
56 // These must be defined as in the .idl file and must match those 56 // These must be defined as in the .idl file and must match those
57 // in the DistanceEffect class. 57 // in the DistanceEffect class.
58 enum { 58 enum {
59 LINEAR_DISTANCE = 0, 59 LINEAR_DISTANCE = 0,
60 INVERSE_DISTANCE = 1, 60 INVERSE_DISTANCE = 1,
61 EXPONENTIAL_DISTANCE = 2, 61 EXPONENTIAL_DISTANCE = 2,
62 }; 62 };
63 63
64 static PassRefPtr<PannerNode> create(AudioContext* context, float sampleRate ) 64 static PassRefPtrWillBeRawPtr<PannerNode> create(AudioContext* context, floa t sampleRate)
65 { 65 {
66 return adoptRef(new PannerNode(context, sampleRate)); 66 return adoptRefWillBeNoop(new PannerNode(context, sampleRate));
67 } 67 }
68 68
69 virtual ~PannerNode(); 69 virtual ~PannerNode();
70 70
71 // AudioNode 71 // AudioNode
72 virtual void process(size_t framesToProcess) OVERRIDE; 72 virtual void process(size_t framesToProcess) OVERRIDE;
73 virtual void pullInputs(size_t framesToProcess) OVERRIDE; 73 virtual void pullInputs(size_t framesToProcess) OVERRIDE;
74 virtual void initialize() OVERRIDE; 74 virtual void initialize() OVERRIDE;
75 virtual void uninitialize() OVERRIDE; 75 virtual void uninitialize() OVERRIDE;
76 76
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 112
113 double coneOuterGain() const { return m_coneEffect.outerGain(); } 113 double coneOuterGain() const { return m_coneEffect.outerGain(); }
114 void setConeOuterGain(double angle) { m_coneEffect.setOuterGain(angle); } 114 void setConeOuterGain(double angle) { m_coneEffect.setOuterGain(angle); }
115 115
116 // It must be called on audio thread, currently called only process() in Aud ioBufferSourceNode. 116 // It must be called on audio thread, currently called only process() in Aud ioBufferSourceNode.
117 double dopplerRate(); 117 double dopplerRate();
118 118
119 virtual double tailTime() const OVERRIDE { return m_panner ? m_panner->tailT ime() : 0; } 119 virtual double tailTime() const OVERRIDE { return m_panner ? m_panner->tailT ime() : 0; }
120 virtual double latencyTime() const OVERRIDE { return m_panner ? m_panner->la tencyTime() : 0; } 120 virtual double latencyTime() const OVERRIDE { return m_panner ? m_panner->la tencyTime() : 0; }
121 121
122 virtual void trace(Visitor*) OVERRIDE;
123
122 private: 124 private:
123 PannerNode(AudioContext*, float sampleRate); 125 PannerNode(AudioContext*, float sampleRate);
124 126
125 bool setPanningModel(unsigned); // Returns true on success. 127 bool setPanningModel(unsigned); // Returns true on success.
126 bool setDistanceModel(unsigned); // Returns true on success. 128 bool setDistanceModel(unsigned); // Returns true on success.
127 void calculateAzimuthElevation(double* outAzimuth, double* outElevation); 129 void calculateAzimuthElevation(double* outAzimuth, double* outElevation);
128 // Returns the combined distance and cone gain attenuation. 130 // Returns the combined distance and cone gain attenuation.
129 float calculateDistanceConeGain(); 131 float calculateDistanceConeGain();
130 double calculateDopplerRate(); 132 double calculateDopplerRate();
131 133
(...skipping 29 matching lines...) Expand all
161 DistanceEffect m_distanceEffect; 163 DistanceEffect m_distanceEffect;
162 ConeEffect m_coneEffect; 164 ConeEffect m_coneEffect;
163 float m_lastGain; 165 float m_lastGain;
164 166
165 double m_cachedAzimuth; 167 double m_cachedAzimuth;
166 double m_cachedElevation; 168 double m_cachedElevation;
167 float m_cachedDistanceConeGain; 169 float m_cachedDistanceConeGain;
168 double m_cachedDopplerRate; 170 double m_cachedDopplerRate;
169 171
170 // Cached listener parameters after processing. 172 // Cached listener parameters after processing.
171 RefPtr<AudioListener> m_cachedListener; 173 RefPtrWillBeMember<AudioListener> m_cachedListener;
172 174
173 RefPtr<HRTFDatabaseLoader> m_hrtfDatabaseLoader; 175 RefPtr<HRTFDatabaseLoader> m_hrtfDatabaseLoader;
174 176
175 // AudioContext's connection count 177 // AudioContext's connection count
176 unsigned m_connectionCount; 178 unsigned m_connectionCount;
177 179
178 // Synchronize process() with setting of the panning model, distance model a nd caching of the source location/orientation info. 180 // Synchronize process() with setting of the panning model, distance model a nd caching of the source location/orientation info.
179 mutable Mutex m_processLock; 181 mutable Mutex m_processLock;
180 }; 182 };
181 183
182 } // namespace WebCore 184 } // namespace WebCore
183 185
184 #endif // PannerNode_h 186 #endif // PannerNode_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698