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

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/OscillatorNode.cpp

Issue 2389253002: reflow comments in modules/{webaudio,vr} (Closed)
Patch Set: . Created 4 years, 2 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012, Google Inc. All rights reserved. 2 * Copyright (C) 2012, 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 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 periodicWave = context()->periodicWave(SQUARE); 119 periodicWave = context()->periodicWave(SQUARE);
120 break; 120 break;
121 case SAWTOOTH: 121 case SAWTOOTH:
122 periodicWave = context()->periodicWave(SAWTOOTH); 122 periodicWave = context()->periodicWave(SAWTOOTH);
123 break; 123 break;
124 case TRIANGLE: 124 case TRIANGLE:
125 periodicWave = context()->periodicWave(TRIANGLE); 125 periodicWave = context()->periodicWave(TRIANGLE);
126 break; 126 break;
127 case CUSTOM: 127 case CUSTOM:
128 default: 128 default:
129 // Return false for invalid types, including CUSTOM since setPeriodicWave( ) method must be 129 // Return false for invalid types, including CUSTOM since
130 // called explicitly. 130 // setPeriodicWave() method must be called explicitly.
131 ASSERT_NOT_REACHED(); 131 ASSERT_NOT_REACHED();
132 return false; 132 return false;
133 } 133 }
134 134
135 setPeriodicWave(periodicWave); 135 setPeriodicWave(periodicWave);
136 m_type = type; 136 m_type = type;
137 return true; 137 return true;
138 } 138 }
139 139
140 bool OscillatorHandler::calculateSampleAccuratePhaseIncrements( 140 bool OscillatorHandler::calculateSampleAccuratePhaseIncrements(
(...skipping 18 matching lines...) Expand all
159 159
160 if (m_frequency->hasSampleAccurateValues()) { 160 if (m_frequency->hasSampleAccurateValues()) {
161 hasSampleAccurateValues = true; 161 hasSampleAccurateValues = true;
162 hasFrequencyChanges = true; 162 hasFrequencyChanges = true;
163 163
164 // Get the sample-accurate frequency values and convert to phase increments. 164 // Get the sample-accurate frequency values and convert to phase increments.
165 // They will be converted to phase increments below. 165 // They will be converted to phase increments below.
166 m_frequency->calculateSampleAccurateValues(phaseIncrements, 166 m_frequency->calculateSampleAccurateValues(phaseIncrements,
167 framesToProcess); 167 framesToProcess);
168 } else { 168 } else {
169 // Handle ordinary parameter smoothing/de-zippering if there are no schedule d changes. 169 // Handle ordinary parameter smoothing/de-zippering if there are no
170 // scheduled changes.
170 m_frequency->smooth(); 171 m_frequency->smooth();
171 float frequency = m_frequency->smoothedValue(); 172 float frequency = m_frequency->smoothedValue();
172 finalScale *= frequency; 173 finalScale *= frequency;
173 } 174 }
174 175
175 if (m_detune->hasSampleAccurateValues()) { 176 if (m_detune->hasSampleAccurateValues()) {
176 hasSampleAccurateValues = true; 177 hasSampleAccurateValues = true;
177 178
178 // Get the sample-accurate detune values. 179 // Get the sample-accurate detune values.
179 float* detuneValues = 180 float* detuneValues =
180 hasFrequencyChanges ? m_detuneValues.data() : phaseIncrements; 181 hasFrequencyChanges ? m_detuneValues.data() : phaseIncrements;
181 m_detune->calculateSampleAccurateValues(detuneValues, framesToProcess); 182 m_detune->calculateSampleAccurateValues(detuneValues, framesToProcess);
182 183
183 // Convert from cents to rate scalar. 184 // Convert from cents to rate scalar.
184 float k = 1.0 / 1200; 185 float k = 1.0 / 1200;
185 vsmul(detuneValues, 1, &k, detuneValues, 1, framesToProcess); 186 vsmul(detuneValues, 1, &k, detuneValues, 1, framesToProcess);
186 for (unsigned i = 0; i < framesToProcess; ++i) 187 for (unsigned i = 0; i < framesToProcess; ++i)
187 detuneValues[i] = powf( 188 detuneValues[i] = powf(
188 2, detuneValues[i]); // FIXME: converting to expf() will be faster. 189 2, detuneValues[i]); // FIXME: converting to expf() will be faster.
189 190
190 if (hasFrequencyChanges) { 191 if (hasFrequencyChanges) {
191 // Multiply frequencies by detune scalings. 192 // Multiply frequencies by detune scalings.
192 vmul(detuneValues, 1, phaseIncrements, 1, phaseIncrements, 1, 193 vmul(detuneValues, 1, phaseIncrements, 1, phaseIncrements, 1,
193 framesToProcess); 194 framesToProcess);
194 } 195 }
195 } else { 196 } else {
196 // Handle ordinary parameter smoothing/de-zippering if there are no schedule d changes. 197 // Handle ordinary parameter smoothing/de-zippering if there are no
198 // scheduled changes.
197 m_detune->smooth(); 199 m_detune->smooth();
198 float detune = m_detune->smoothedValue(); 200 float detune = m_detune->smoothedValue();
199 float detuneScale = powf(2, detune / 1200); 201 float detuneScale = powf(2, detune / 1200);
200 finalScale *= detuneScale; 202 finalScale *= detuneScale;
201 } 203 }
202 204
203 if (hasSampleAccurateValues) { 205 if (hasSampleAccurateValues) {
204 // Convert from frequency to wavetable increment. 206 // Convert from frequency to wavetable increment.
205 vsmul(phaseIncrements, 1, &finalScale, phaseIncrements, 1, framesToProcess); 207 vsmul(phaseIncrements, 1, &finalScale, phaseIncrements, 1, framesToProcess);
206 } 208 }
207 209
208 return hasSampleAccurateValues; 210 return hasSampleAccurateValues;
209 } 211 }
210 212
211 void OscillatorHandler::process(size_t framesToProcess) { 213 void OscillatorHandler::process(size_t framesToProcess) {
212 AudioBus* outputBus = output(0).bus(); 214 AudioBus* outputBus = output(0).bus();
213 215
214 if (!isInitialized() || !outputBus->numberOfChannels()) { 216 if (!isInitialized() || !outputBus->numberOfChannels()) {
215 outputBus->zero(); 217 outputBus->zero();
216 return; 218 return;
217 } 219 }
218 220
219 DCHECK_LE(framesToProcess, m_phaseIncrements.size()); 221 DCHECK_LE(framesToProcess, m_phaseIncrements.size());
220 if (framesToProcess > m_phaseIncrements.size()) 222 if (framesToProcess > m_phaseIncrements.size())
221 return; 223 return;
222 224
223 // The audio thread can't block on this lock, so we call tryLock() instead. 225 // The audio thread can't block on this lock, so we call tryLock() instead.
224 MutexTryLocker tryLocker(m_processLock); 226 MutexTryLocker tryLocker(m_processLock);
225 if (!tryLocker.locked()) { 227 if (!tryLocker.locked()) {
226 // Too bad - the tryLock() failed. We must be in the middle of changing wave -tables. 228 // Too bad - the tryLock() failed. We must be in the middle of changing
229 // wave-tables.
227 outputBus->zero(); 230 outputBus->zero();
228 return; 231 return;
229 } 232 }
230 233
231 // We must access m_periodicWave only inside the lock. 234 // We must access m_periodicWave only inside the lock.
232 if (!m_periodicWave.get()) { 235 if (!m_periodicWave.get()) {
233 outputBus->zero(); 236 outputBus->zero();
234 return; 237 return;
235 } 238 }
236 239
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 interpolationFactor * sample2Higher; 314 interpolationFactor * sample2Higher;
312 float sampleLower = (1 - interpolationFactor) * sample1Lower + 315 float sampleLower = (1 - interpolationFactor) * sample1Lower +
313 interpolationFactor * sample2Lower; 316 interpolationFactor * sample2Lower;
314 317
315 // Then interpolate between the two tables. 318 // Then interpolate between the two tables.
316 float sample = (1 - tableInterpolationFactor) * sampleHigher + 319 float sample = (1 - tableInterpolationFactor) * sampleHigher +
317 tableInterpolationFactor * sampleLower; 320 tableInterpolationFactor * sampleLower;
318 321
319 *destP++ = sample; 322 *destP++ = sample;
320 323
321 // Increment virtual read index and wrap virtualReadIndex into the range 0 - > periodicWaveSize. 324 // Increment virtual read index and wrap virtualReadIndex into the range
325 // 0 -> periodicWaveSize.
322 virtualReadIndex += incr; 326 virtualReadIndex += incr;
323 virtualReadIndex -= 327 virtualReadIndex -=
324 floor(virtualReadIndex * invPeriodicWaveSize) * periodicWaveSize; 328 floor(virtualReadIndex * invPeriodicWaveSize) * periodicWaveSize;
325 } 329 }
326 330
327 m_virtualReadIndex = virtualReadIndex; 331 m_virtualReadIndex = virtualReadIndex;
328 332
329 outputBus->clearSilentFlag(); 333 outputBus->clearSilentFlag();
330 } 334 }
331 335
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 446
443 AudioParam* OscillatorNode::detune() { 447 AudioParam* OscillatorNode::detune() {
444 return m_detune; 448 return m_detune;
445 } 449 }
446 450
447 void OscillatorNode::setPeriodicWave(PeriodicWave* wave) { 451 void OscillatorNode::setPeriodicWave(PeriodicWave* wave) {
448 oscillatorHandler().setPeriodicWave(wave); 452 oscillatorHandler().setPeriodicWave(wave);
449 } 453 }
450 454
451 } // namespace blink 455 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/webaudio/OscillatorNode.h ('k') | third_party/WebKit/Source/modules/webaudio/PannerNode.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698