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

Side by Side Diff: third_party/WebKit/Source/modules/webaudio/BaseAudioContext.h

Issue 2060833002: Implementation of 'AudioContext.getOutputTimestamp' method (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 3 years, 12 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) 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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 // nodes reference all nodes they're connected to. All nodes are ultimately 232 // nodes reference all nodes they're connected to. All nodes are ultimately
233 // connected to the AudioDestinationNode. When the context release a source 233 // connected to the AudioDestinationNode. When the context release a source
234 // node, it will be deactivated from the rendering graph along with all 234 // node, it will be deactivated from the rendering graph along with all
235 // other nodes it is uniquely connected to. 235 // other nodes it is uniquely connected to.
236 void notifySourceNodeStartedProcessing(AudioNode*); 236 void notifySourceNodeStartedProcessing(AudioNode*);
237 // When a source node has no more processing to do (has finished playing), 237 // When a source node has no more processing to do (has finished playing),
238 // this method tells the context to release the corresponding node. 238 // this method tells the context to release the corresponding node.
239 void notifySourceNodeFinishedProcessing(AudioHandler*); 239 void notifySourceNodeFinishedProcessing(AudioHandler*);
240 240
241 // Called at the start of each render quantum. 241 // Called at the start of each render quantum.
242 void handlePreRenderTasks(); 242 void handlePreRenderTasks(const AudioIOPosition& outputPosition);
243 243
244 // Called at the end of each render quantum. 244 // Called at the end of each render quantum.
245 void handlePostRenderTasks(); 245 void handlePostRenderTasks();
246 246
247 // Called periodically at the end of each render quantum to release finished 247 // Called periodically at the end of each render quantum to release finished
248 // source nodes. 248 // source nodes.
249 void releaseFinishedSourceNodes(); 249 void releaseFinishedSourceNodes();
250 250
251 // Keeps track of the number of connections made. 251 // Keeps track of the number of connections made.
252 void incrementConnectionCount() { 252 void incrementConnectionCount() {
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 340
341 void rejectPendingDecodeAudioDataResolvers(); 341 void rejectPendingDecodeAudioDataResolvers();
342 342
343 // If any, unlock user gesture requirements if a user gesture is being 343 // If any, unlock user gesture requirements if a user gesture is being
344 // processed. 344 // processed.
345 void maybeUnlockUserGesture(); 345 void maybeUnlockUserGesture();
346 346
347 // Returns whether the AudioContext is allowed to start rendering. 347 // Returns whether the AudioContext is allowed to start rendering.
348 bool isAllowedToStart() const; 348 bool isAllowedToStart() const;
349 349
350 AudioIOPosition outputPosition();
351
350 private: 352 private:
351 friend class BaseAudioContextTest; 353 friend class BaseAudioContextTest;
352 354
353 // Do not change the order of this enum, it is used for metrics. 355 // Do not change the order of this enum, it is used for metrics.
354 enum AutoplayStatus { 356 enum AutoplayStatus {
355 // The AudioContext failed to activate because of user gesture requirements. 357 // The AudioContext failed to activate because of user gesture requirements.
356 AutoplayStatusFailed = 0, 358 AutoplayStatusFailed = 0,
357 // Same as AutoplayStatusFailed but start() on a node was called with a user 359 // Same as AutoplayStatusFailed but start() on a node was called with a user
358 // gesture. 360 // gesture.
359 AutoplayStatusFailedWithStart = 1, 361 AutoplayStatusFailedWithStart = 1,
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 Member<PeriodicWave> m_periodicWaveSine; 445 Member<PeriodicWave> m_periodicWaveSine;
444 Member<PeriodicWave> m_periodicWaveSquare; 446 Member<PeriodicWave> m_periodicWaveSquare;
445 Member<PeriodicWave> m_periodicWaveSawtooth; 447 Member<PeriodicWave> m_periodicWaveSawtooth;
446 Member<PeriodicWave> m_periodicWaveTriangle; 448 Member<PeriodicWave> m_periodicWaveTriangle;
447 449
448 // This is considering 32 is large enough for multiple channels audio. 450 // This is considering 32 is large enough for multiple channels audio.
449 // It is somewhat arbitrary and could be increased if necessary. 451 // It is somewhat arbitrary and could be increased if necessary.
450 enum { MaxNumberOfChannels = 32 }; 452 enum { MaxNumberOfChannels = 32 };
451 453
452 Optional<AutoplayStatus> m_autoplayStatus; 454 Optional<AutoplayStatus> m_autoplayStatus;
455 AudioIOPosition m_outputPosition;
453 }; 456 };
454 457
455 } // namespace blink 458 } // namespace blink
456 459
457 #endif // BaseAudioContext_h 460 #endif // BaseAudioContext_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698