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

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

Issue 2102133002: Add constructors for WebAudio nodes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and prefix use counter names with WebAudio Created 4 years, 3 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 13 matching lines...) Expand all
24 24
25 #include "modules/webaudio/PannerNode.h" 25 #include "modules/webaudio/PannerNode.h"
26 #include "bindings/core/v8/ExceptionMessages.h" 26 #include "bindings/core/v8/ExceptionMessages.h"
27 #include "bindings/core/v8/ExceptionState.h" 27 #include "bindings/core/v8/ExceptionState.h"
28 #include "core/dom/ExceptionCode.h" 28 #include "core/dom/ExceptionCode.h"
29 #include "core/dom/ExecutionContext.h" 29 #include "core/dom/ExecutionContext.h"
30 #include "modules/webaudio/AudioBufferSourceNode.h" 30 #include "modules/webaudio/AudioBufferSourceNode.h"
31 #include "modules/webaudio/AudioNodeInput.h" 31 #include "modules/webaudio/AudioNodeInput.h"
32 #include "modules/webaudio/AudioNodeOutput.h" 32 #include "modules/webaudio/AudioNodeOutput.h"
33 #include "modules/webaudio/BaseAudioContext.h" 33 #include "modules/webaudio/BaseAudioContext.h"
34 #include "modules/webaudio/PannerOptions.h"
34 #include "platform/Histogram.h" 35 #include "platform/Histogram.h"
35 #include "platform/audio/HRTFPanner.h" 36 #include "platform/audio/HRTFPanner.h"
36 #include "wtf/MathExtras.h" 37 #include "wtf/MathExtras.h"
37 38
38 namespace blink { 39 namespace blink {
39 40
40 static void fixNANs(double& x) 41 static void fixNANs(double& x)
41 { 42 {
42 if (std::isnan(x) || std::isinf(x)) 43 if (std::isnan(x) || std::isinf(x))
43 x = 0.0; 44 x = 0.0;
(...skipping 617 matching lines...) Expand 10 before | Expand all | Expand 10 after
661 DCHECK(isMainThread()); 662 DCHECK(isMainThread());
662 663
663 if (context.isContextClosed()) { 664 if (context.isContextClosed()) {
664 context.throwExceptionForClosedState(exceptionState); 665 context.throwExceptionForClosedState(exceptionState);
665 return nullptr; 666 return nullptr;
666 } 667 }
667 668
668 return new PannerNode(context); 669 return new PannerNode(context);
669 } 670 }
670 671
672 PannerNode* PannerNode::create(BaseAudioContext* context, const PannerOptions& o ptions, ExceptionState& exceptionState)
673 {
674 PannerNode* node = create(*context, exceptionState);
675
676 if (!node)
677 return nullptr;
678
679 node->handleChannelOptions(options, exceptionState);
680
681 if (options.hasPanningModel())
682 node->setPanningModel(options.panningModel());
683 if (options.hasDistanceModel())
684 node->setDistanceModel(options.distanceModel());
685
686 if (options.hasPositionX())
687 node->positionX()->setValue(options.positionX());
688 if (options.hasPositionY())
689 node->positionY()->setValue(options.positionY());
690 if (options.hasPositionZ())
691 node->positionZ()->setValue(options.positionZ());
692
693 if (options.hasOrientationX())
694 node->orientationX()->setValue(options.orientationX());
695 if (options.hasOrientationY())
696 node->orientationY()->setValue(options.orientationY());
697 if (options.hasOrientationZ())
698 node->orientationZ()->setValue(options.orientationZ());
699
700 if (options.hasRefDistance())
701 node->setRefDistance(options.refDistance());
702 if (options.hasMaxDistance())
703 node->setMaxDistance(options.maxDistance());
704 if (options.hasRolloffFactor())
705 node->setRolloffFactor(options.rolloffFactor());
706 if (options.hasConeInnerAngle())
707 node->setConeInnerAngle(options.coneInnerAngle());
708 if (options.hasConeOuterAngle())
709 node->setConeOuterAngle(options.coneOuterAngle());
710 if (options.hasConeOuterGain())
711 node->setConeOuterGain(options.coneOuterGain());
712
713 return node;
714 }
715
671 PannerHandler& PannerNode::pannerHandler() const 716 PannerHandler& PannerNode::pannerHandler() const
672 { 717 {
673 return static_cast<PannerHandler&>(handler()); 718 return static_cast<PannerHandler&>(handler());
674 } 719 }
675 720
676 String PannerNode::panningModel() const 721 String PannerNode::panningModel() const
677 { 722 {
678 return pannerHandler().panningModel(); 723 return pannerHandler().panningModel();
679 } 724 }
680 725
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 visitor->trace(m_positionZ); 821 visitor->trace(m_positionZ);
777 822
778 visitor->trace(m_orientationX); 823 visitor->trace(m_orientationX);
779 visitor->trace(m_orientationY); 824 visitor->trace(m_orientationY);
780 visitor->trace(m_orientationZ); 825 visitor->trace(m_orientationZ);
781 826
782 AudioNode::trace(visitor); 827 AudioNode::trace(visitor);
783 } 828 }
784 829
785 } // namespace blink 830 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/webaudio/PannerNode.h ('k') | third_party/WebKit/Source/modules/webaudio/PannerNode.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698