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

Side by Side Diff: Source/modules/webaudio/AudioParamTimeline.cpp

Issue 363613003: Removing using declarations that import names in the C++ Standard library. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 5 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 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 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 18 matching lines...) Expand all
29 29
30 #include "modules/webaudio/AudioParamTimeline.h" 30 #include "modules/webaudio/AudioParamTimeline.h"
31 31
32 #include "bindings/v8/ExceptionState.h" 32 #include "bindings/v8/ExceptionState.h"
33 #include "core/dom/ExceptionCode.h" 33 #include "core/dom/ExceptionCode.h"
34 #include "platform/audio/AudioUtilities.h" 34 #include "platform/audio/AudioUtilities.h"
35 #include "platform/FloatConversion.h" 35 #include "platform/FloatConversion.h"
36 #include "wtf/MathExtras.h" 36 #include "wtf/MathExtras.h"
37 #include <algorithm> 37 #include <algorithm>
38 38
39 using namespace std;
40
41 namespace WebCore { 39 namespace WebCore {
42 40
43 void AudioParamTimeline::setValueAtTime(float value, double time) 41 void AudioParamTimeline::setValueAtTime(float value, double time)
44 { 42 {
45 insertEvent(ParamEvent(ParamEvent::SetValue, value, time, 0, 0, nullptr)); 43 insertEvent(ParamEvent(ParamEvent::SetValue, value, time, 0, 0, nullptr));
46 } 44 }
47 45
48 void AudioParamTimeline::linearRampToValueAtTime(float value, double time) 46 void AudioParamTimeline::linearRampToValueAtTime(float value, double time)
49 { 47 {
50 insertEvent(ParamEvent(ParamEvent::LinearRampToValue, value, time, 0, 0, nul lptr)); 48 insertEvent(ParamEvent(ParamEvent::LinearRampToValue, value, time, 0, 0, nul lptr));
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 } 190 }
193 191
194 // Maintain a running time and index for writing the values buffer. 192 // Maintain a running time and index for writing the values buffer.
195 double currentTime = startTime; 193 double currentTime = startTime;
196 unsigned writeIndex = 0; 194 unsigned writeIndex = 0;
197 195
198 // If first event is after startTime then fill initial part of values buffer with defaultValue 196 // If first event is after startTime then fill initial part of values buffer with defaultValue
199 // until we reach the first event time. 197 // until we reach the first event time.
200 double firstEventTime = m_events[0].time(); 198 double firstEventTime = m_events[0].time();
201 if (firstEventTime > startTime) { 199 if (firstEventTime > startTime) {
202 double fillToTime = min(endTime, firstEventTime); 200 double fillToTime = std::min(endTime, firstEventTime);
203 unsigned fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - st artTime, sampleRate); 201 unsigned fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - st artTime, sampleRate);
204 fillToFrame = min(fillToFrame, numberOfValues); 202 fillToFrame = std::min(fillToFrame, numberOfValues);
205 for (; writeIndex < fillToFrame; ++writeIndex) 203 for (; writeIndex < fillToFrame; ++writeIndex)
206 values[writeIndex] = defaultValue; 204 values[writeIndex] = defaultValue;
207 205
208 currentTime = fillToTime; 206 currentTime = fillToTime;
209 } 207 }
210 208
211 float value = defaultValue; 209 float value = defaultValue;
212 210
213 // Go through each event and render the value buffer where the times overlap , 211 // Go through each event and render the value buffer where the times overlap ,
214 // stopping when we've rendered all the requested values. 212 // stopping when we've rendered all the requested values.
(...skipping 10 matching lines...) Expand all
225 223
226 float value1 = event.value(); 224 float value1 = event.value();
227 double time1 = event.time(); 225 double time1 = event.time();
228 float value2 = nextEvent ? nextEvent->value() : value1; 226 float value2 = nextEvent ? nextEvent->value() : value1;
229 double time2 = nextEvent ? nextEvent->time() : endTime + 1; 227 double time2 = nextEvent ? nextEvent->time() : endTime + 1;
230 228
231 double deltaTime = time2 - time1; 229 double deltaTime = time2 - time1;
232 float k = deltaTime > 0 ? 1 / deltaTime : 0; 230 float k = deltaTime > 0 ? 1 / deltaTime : 0;
233 double sampleFrameTimeIncr = 1 / sampleRate; 231 double sampleFrameTimeIncr = 1 / sampleRate;
234 232
235 double fillToTime = min(endTime, time2); 233 double fillToTime = std::min(endTime, time2);
236 unsigned fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - st artTime, sampleRate); 234 unsigned fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - st artTime, sampleRate);
237 fillToFrame = min(fillToFrame, numberOfValues); 235 fillToFrame = std::min(fillToFrame, numberOfValues);
238 236
239 ParamEvent::Type nextEventType = nextEvent ? static_cast<ParamEvent::Typ e>(nextEvent->type()) : ParamEvent::LastType /* unknown */; 237 ParamEvent::Type nextEventType = nextEvent ? static_cast<ParamEvent::Typ e>(nextEvent->type()) : ParamEvent::LastType /* unknown */;
240 238
241 // First handle linear and exponential ramps which require looking ahead to the next event. 239 // First handle linear and exponential ramps which require looking ahead to the next event.
242 if (nextEventType == ParamEvent::LinearRampToValue) { 240 if (nextEventType == ParamEvent::LinearRampToValue) {
243 for (; writeIndex < fillToFrame; ++writeIndex) { 241 for (; writeIndex < fillToFrame; ++writeIndex) {
244 float x = (currentTime - time1) * k; 242 float x = (currentTime - time1) * k;
245 value = (1 - x) * value1 + x * value2; 243 value = (1 - x) * value1 + x * value2;
246 values[writeIndex] = value; 244 values[writeIndex] = value;
247 currentTime += sampleFrameTimeIncr; 245 currentTime += sampleFrameTimeIncr;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 currentTime = fillToTime; 317 currentTime = fillToTime;
320 for (; writeIndex < fillToFrame; ++writeIndex) 318 for (; writeIndex < fillToFrame; ++writeIndex)
321 values[writeIndex] = value; 319 values[writeIndex] = value;
322 break; 320 break;
323 } 321 }
324 322
325 // Save old values and recalculate information based on the curve's duration 323 // Save old values and recalculate information based on the curve's duration
326 // instead of the next event time. 324 // instead of the next event time.
327 unsigned nextEventFillToFrame = fillToFrame; 325 unsigned nextEventFillToFrame = fillToFrame;
328 float nextEventFillToTime = fillToTime; 326 float nextEventFillToTime = fillToTime;
329 fillToTime = min(endTime, time1 + duration); 327 fillToTime = std::min(endTime, time1 + duration);
330 fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - startTime, sampleRate); 328 fillToFrame = AudioUtilities::timeToSampleFrame(fillToTime - startTime, sampleRate);
331 fillToFrame = min(fillToFrame, numberOfValues); 329 fillToFrame = std::min(fillToFrame, numberOfValues);
332 330
333 // Index into the curve data using a floating-point value. 331 // Index into the curve data using a floating-point value.
334 // We're scaling the number of curve points by the duration (see curvePointsPerFrame). 332 // We're scaling the number of curve points by the duration (see curvePointsPerFrame).
335 float curveVirtualIndex = 0; 333 float curveVirtualIndex = 0;
336 if (time1 < currentTime) { 334 if (time1 < currentTime) {
337 // Index somewhere in the middle of the curve data. 335 // Index somewhere in the middle of the curve data.
338 // Don't use timeToSampleFrame() since we want the exact floating-point frame. 336 // Don't use timeToSampleFrame() since we want the exact floating-point frame.
339 float frameOffset = (currentTime - time1) * sampleRate; 337 float frameOffset = (currentTime - time1) * sampleRate;
340 curveVirtualIndex = curvePointsPerFrame * frameOffset; 338 curveVirtualIndex = curvePointsPerFrame * frameOffset;
341 } 339 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
374 // to the end of the values buffer. 372 // to the end of the values buffer.
375 for (; writeIndex < numberOfValues; ++writeIndex) 373 for (; writeIndex < numberOfValues; ++writeIndex)
376 values[writeIndex] = value; 374 values[writeIndex] = value;
377 375
378 return value; 376 return value;
379 } 377 }
380 378
381 } // namespace WebCore 379 } // namespace WebCore
382 380
383 #endif // ENABLE(WEB_AUDIO) 381 #endif // ENABLE(WEB_AUDIO)
OLDNEW
« no previous file with comments | « Source/modules/webaudio/AudioNodeInput.cpp ('k') | Source/modules/webaudio/AudioScheduledSourceNode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698