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

Unified Diff: Source/modules/webaudio/StereoPannerNode.h

Issue 691143007: Implement StereoPannerNode for robust stereo panning (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: Source/modules/webaudio/StereoPannerNode.h
diff --git a/Source/platform/text/TextRunIterator.h b/Source/modules/webaudio/StereoPannerNode.h
similarity index 56%
copy from Source/platform/text/TextRunIterator.h
copy to Source/modules/webaudio/StereoPannerNode.h
index 0774b659a08244236f61d3b3b5cf728a6d078329..02b02e4278a5925be7926116a0d5be933f9ca761 100644
--- a/Source/platform/text/TextRunIterator.h
+++ b/Source/modules/webaudio/StereoPannerNode.h
@@ -1,4 +1,4 @@
-// Copyright (C) 2013 Google Inc. All rights reserved.
+// Copyright 2014 The Chromium Authors. All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
@@ -26,53 +26,49 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#ifndef TextRunIterator_h
-#define TextRunIterator_h
+#ifndef StereoPannerNode_h
+#define StereoPannerNode_h
-#include "platform/text/TextRun.h"
+#include "modules/webaudio/AudioNode.h"
+#include "modules/webaudio/AudioParam.h"
+#include "platform/audio/AudioBus.h"
+#include "platform/audio/Spatializer.h"
namespace blink {
-class TextRunIterator {
+// StereoPannerNode is an AudioNode with one input and one output. It is
+// specifically designed for equal-power stereo panning.
+class StereoPannerNode final : public AudioNode {
+ DEFINE_WRAPPERTYPEINFO();
public:
- TextRunIterator()
- : m_textRun(0)
- , m_offset(0)
+ static StereoPannerNode* create(AudioContext* context, float sampleRate)
{
+ return new StereoPannerNode(context, sampleRate);
}
- TextRunIterator(const TextRun* textRun, unsigned offset)
- : m_textRun(textRun)
- , m_offset(offset)
- {
- }
+ virtual ~StereoPannerNode();
- TextRunIterator(const TextRunIterator& other)
- : m_textRun(other.m_textRun)
- , m_offset(other.m_offset)
- {
- }
+ virtual void dispose() override;
+ virtual void process(size_t framesToProcess) override;
+ virtual void initialize() override;
+ virtual void uninitialize() override;
- unsigned offset() const { return m_offset; }
- void increment() { m_offset++; }
- bool atEnd() const { return !m_textRun || m_offset >= m_textRun->length(); }
- UChar current() const { return (*m_textRun)[m_offset]; }
- WTF::Unicode::Direction direction() const { return atEnd() ? WTF::Unicode::OtherNeutral : WTF::Unicode::direction(current()); }
- bool atParagraphSeparator() const { return current() == '\n'; }
+ virtual double tailTime() const override { return 0; }
+ virtual double latencyTime() const override { return 0; }
- bool operator==(const TextRunIterator& other)
- {
- return m_offset == other.m_offset && m_textRun == other.m_textRun;
- }
+ virtual void trace(Visitor*) override;
- bool operator!=(const TextRunIterator& other) { return !operator==(other); }
+ AudioParam* pan() { return m_pan.get(); }
Raymond Toy 2014/11/11 19:41:47 Can this be const?
hongchan 2014/11/12 00:06:54 The structure of this node is based on GainNode an
Raymond Toy 2014/11/12 00:16:44 I think the style is to be const when possible, so
private:
- const TextRun* m_textRun;
- int m_offset;
-};
+ StereoPannerNode(AudioContext*, float sampleRate);
+ Member<Spatializer> m_stereoPanner;
+ Member<AudioParam> m_pan;
+
+ AudioFloatArray m_sampleAccuratePanValues;
+};
} // namespace blink
-#endif // TextRunIterator_h
+#endif // StereoPannerNode_h

Powered by Google App Engine
This is Rietveld 408576698