| Index: third_party/WebKit/Source/modules/webaudio/AudioParam.h
|
| diff --git a/third_party/WebKit/Source/modules/webaudio/AudioParam.h b/third_party/WebKit/Source/modules/webaudio/AudioParam.h
|
| index 86551572b463f1bb6846c99b2ae50d6407a5465e..e28fd386320c1b973247a695c3051115163930b6 100644
|
| --- a/third_party/WebKit/Source/modules/webaudio/AudioParam.h
|
| +++ b/third_party/WebKit/Source/modules/webaudio/AudioParam.h
|
| @@ -84,9 +84,14 @@ public:
|
| static const double DefaultSmoothingConstant;
|
| static const double SnapThreshold;
|
|
|
| - static PassRefPtr<AudioParamHandler> create(AbstractAudioContext& context, AudioParamType paramType, double defaultValue)
|
| + static PassRefPtr<AudioParamHandler> create(
|
| + AbstractAudioContext& context,
|
| + AudioParamType paramType,
|
| + double defaultValue,
|
| + float minValue,
|
| + float maxValue)
|
| {
|
| - return adoptRef(new AudioParamHandler(context, paramType, defaultValue));
|
| + return adoptRef(new AudioParamHandler(context, paramType, defaultValue, minValue, maxValue));
|
| }
|
|
|
| // This should be used only in audio rendering thread.
|
| @@ -106,6 +111,8 @@ public:
|
| float finalValue();
|
|
|
| float defaultValue() const { return static_cast<float>(m_defaultValue); }
|
| + float minValue() const { return m_minValue; }
|
| + float maxValue() const { return m_maxValue; }
|
|
|
| // Value smoothing:
|
|
|
| @@ -135,7 +142,9 @@ public:
|
| void updateHistograms(float newValue);
|
|
|
| private:
|
| - AudioParamHandler(AbstractAudioContext&, AudioParamType, double defaultValue);
|
| + AudioParamHandler(AbstractAudioContext&, AudioParamType, double defaultValue, float min, float max);
|
| +
|
| + void warnIfOutsideRange(float value, float minValue, float maxValue);
|
|
|
| // sampleAccurate corresponds to a-rate (audio rate) vs. k-rate in the Web Audio specification.
|
| void calculateFinalValues(float* values, unsigned numberOfValues, bool sampleAccurate);
|
| @@ -149,10 +158,14 @@ private:
|
|
|
| // Intrinsic value
|
| float m_intrinsicValue;
|
| - void setIntrinsicValue(float newValue) { noBarrierStore(&m_intrinsicValue, newValue); }
|
| + void setIntrinsicValue(float newValue);
|
|
|
| float m_defaultValue;
|
|
|
| + // Nominal range for the value
|
| + float m_minValue;
|
| + float m_maxValue;
|
| +
|
| // Smoothing (de-zippering)
|
| float m_smoothedValue;
|
|
|
| @@ -167,6 +180,8 @@ class AudioParam final : public GarbageCollectedFinalized<AudioParam>, public Sc
|
| DEFINE_WRAPPERTYPEINFO();
|
| public:
|
| static AudioParam* create(AbstractAudioContext&, AudioParamType, double defaultValue);
|
| + static AudioParam* create(AbstractAudioContext&, AudioParamType, double defaultValue, float minValue, float maxValue);
|
| +
|
| DECLARE_TRACE();
|
| // |handler| always returns a valid object.
|
| AudioParamHandler& handler() const { return *m_handler; }
|
| @@ -180,6 +195,10 @@ public:
|
| float value() const;
|
| void setValue(float);
|
| float defaultValue() const;
|
| +
|
| + float minValue() const;
|
| + float maxValue() const;
|
| +
|
| AudioParam* setValueAtTime(float value, double time, ExceptionState&);
|
| AudioParam* linearRampToValueAtTime(float value, double time, ExceptionState&);
|
| AudioParam* exponentialRampToValueAtTime(float value, double time, ExceptionState&);
|
| @@ -188,7 +207,9 @@ public:
|
| AudioParam* cancelScheduledValues(double startTime, ExceptionState&);
|
|
|
| private:
|
| - AudioParam(AbstractAudioContext&, AudioParamType, double defaultValue);
|
| + AudioParam(AbstractAudioContext&, AudioParamType, double defaultValue, float min, float max);
|
| +
|
| + void warnIfOutsideRange(const String& paramMethd, float value);
|
|
|
| RefPtr<AudioParamHandler> m_handler;
|
| Member<AbstractAudioContext> m_context;
|
|
|