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

Side by Side Diff: Source/modules/webaudio/OscillatorNode.h

Issue 635233004: Replace FINAL and OVERRIDE with their C++11 counterparts in Source/modules (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 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 22 matching lines...) Expand all
33 #include "wtf/RefPtr.h" 33 #include "wtf/RefPtr.h"
34 #include "wtf/Threading.h" 34 #include "wtf/Threading.h"
35 35
36 namespace blink { 36 namespace blink {
37 37
38 class AudioContext; 38 class AudioContext;
39 class PeriodicWave; 39 class PeriodicWave;
40 40
41 // OscillatorNode is an audio generator of periodic waveforms. 41 // OscillatorNode is an audio generator of periodic waveforms.
42 42
43 class OscillatorNode FINAL : public AudioScheduledSourceNode { 43 class OscillatorNode final : public AudioScheduledSourceNode {
44 DEFINE_WRAPPERTYPEINFO(); 44 DEFINE_WRAPPERTYPEINFO();
45 public: 45 public:
46 // The waveform type. 46 // The waveform type.
47 // These must be defined as in the .idl file. 47 // These must be defined as in the .idl file.
48 enum { 48 enum {
49 SINE = 0, 49 SINE = 0,
50 SQUARE = 1, 50 SQUARE = 1,
51 SAWTOOTH = 2, 51 SAWTOOTH = 2,
52 TRIANGLE = 3, 52 TRIANGLE = 3,
53 CUSTOM = 4 53 CUSTOM = 4
54 }; 54 };
55 55
56 static OscillatorNode* create(AudioContext*, float sampleRate); 56 static OscillatorNode* create(AudioContext*, float sampleRate);
57 57
58 virtual ~OscillatorNode(); 58 virtual ~OscillatorNode();
59 59
60 // AudioNode 60 // AudioNode
61 virtual void dispose() OVERRIDE; 61 virtual void dispose() override;
62 virtual void process(size_t framesToProcess) OVERRIDE; 62 virtual void process(size_t framesToProcess) override;
63 63
64 String type() const; 64 String type() const;
65 65
66 void setType(const String&); 66 void setType(const String&);
67 67
68 AudioParam* frequency() { return m_frequency.get(); } 68 AudioParam* frequency() { return m_frequency.get(); }
69 AudioParam* detune() { return m_detune.get(); } 69 AudioParam* detune() { return m_detune.get(); }
70 70
71 void setPeriodicWave(PeriodicWave*); 71 void setPeriodicWave(PeriodicWave*);
72 72
73 virtual void trace(Visitor*) OVERRIDE; 73 virtual void trace(Visitor*) override;
74 74
75 private: 75 private:
76 OscillatorNode(AudioContext*, float sampleRate); 76 OscillatorNode(AudioContext*, float sampleRate);
77 77
78 bool setType(unsigned); // Returns true on success. 78 bool setType(unsigned); // Returns true on success.
79 79
80 // Returns true if there are sample-accurate timeline parameter changes. 80 // Returns true if there are sample-accurate timeline parameter changes.
81 bool calculateSampleAccuratePhaseIncrements(size_t framesToProcess); 81 bool calculateSampleAccuratePhaseIncrements(size_t framesToProcess);
82 82
83 virtual bool propagatesSilence() const OVERRIDE; 83 virtual bool propagatesSilence() const override;
84 84
85 // One of the waveform types defined in the enum. 85 // One of the waveform types defined in the enum.
86 unsigned short m_type; 86 unsigned short m_type;
87 87
88 // Frequency value in Hertz. 88 // Frequency value in Hertz.
89 Member<AudioParam> m_frequency; 89 Member<AudioParam> m_frequency;
90 90
91 // Detune value (deviating from the frequency) in Cents. 91 // Detune value (deviating from the frequency) in Cents.
92 Member<AudioParam> m_detune; 92 Member<AudioParam> m_detune;
93 93
94 bool m_firstRender; 94 bool m_firstRender;
95 95
96 // m_virtualReadIndex is a sample-frame index into our buffer representing t he current playback position. 96 // m_virtualReadIndex is a sample-frame index into our buffer representing t he current playback position.
97 // Since it's floating-point, it has sub-sample accuracy. 97 // Since it's floating-point, it has sub-sample accuracy.
98 double m_virtualReadIndex; 98 double m_virtualReadIndex;
99 99
100 // This synchronizes process(). 100 // This synchronizes process().
101 mutable Mutex m_processLock; 101 mutable Mutex m_processLock;
102 102
103 // Stores sample-accurate values calculated according to frequency and detun e. 103 // Stores sample-accurate values calculated according to frequency and detun e.
104 AudioFloatArray m_phaseIncrements; 104 AudioFloatArray m_phaseIncrements;
105 AudioFloatArray m_detuneValues; 105 AudioFloatArray m_detuneValues;
106 106
107 Member<PeriodicWave> m_periodicWave; 107 Member<PeriodicWave> m_periodicWave;
108 }; 108 };
109 109
110 } // namespace blink 110 } // namespace blink
111 111
112 #endif // OscillatorNode_h 112 #endif // OscillatorNode_h
OLDNEW
« no previous file with comments | « Source/modules/webaudio/OfflineAudioDestinationNode.h ('k') | Source/modules/webaudio/PannerNode.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698