Diff
Modified: trunk/LayoutTests/ChangeLog (110950 => 110951)
--- trunk/LayoutTests/ChangeLog 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/LayoutTests/ChangeLog 2012-03-16 06:56:11 UTC (rev 110951)
@@ -1,3 +1,13 @@
+2012-03-15 Gao Chun <[email protected]>
+
+ Expose attack, release as DynamicsCompressorNode's attributes.
+ https://bugs.webkit.org/show_bug.cgi?id=81221
+
+ Reviewed by Chris Rogers.
+
+ * webaudio/dynamicscompressor-basic-expected.txt:
+ * webaudio/dynamicscompressor-basic.html:
+
2012-03-15 Hans Wennborg <[email protected]>
Speech _javascript_ API: SpeechRecognition, Controller and Client
Modified: trunk/LayoutTests/webaudio/dynamicscompressor-basic-expected.txt (110950 => 110951)
--- trunk/LayoutTests/webaudio/dynamicscompressor-basic-expected.txt 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/LayoutTests/webaudio/dynamicscompressor-basic-expected.txt 2012-03-16 06:56:11 UTC (rev 110951)
@@ -5,6 +5,8 @@
PASS threshold attribute has correct default value.
PASS knee attribute has correct default value.
PASS ratio attribute has correct default value.
+PASS attack attribute has correct default value.
+PASS release attribute has correct default value.
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/webaudio/dynamicscompressor-basic.html (110950 => 110951)
--- trunk/LayoutTests/webaudio/dynamicscompressor-basic.html 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/LayoutTests/webaudio/dynamicscompressor-basic.html 2012-03-16 06:56:11 UTC (rev 110951)
@@ -43,6 +43,16 @@
else
testFailed("ratio attribute has incorrect default value.");
+ if (compressor.attack.value - 0.003 < 1e-7)
+ testPassed("attack attribute has correct default value.");
+ else
+ testFailed("attack attribute has incorrect default value.");
+
+ if (compressor.release.value - 0.25 < 1e-7)
+ testPassed("release attribute has correct default value.");
+ else
+ testFailed("release attribute has incorrect default value.");
+
} catch(e) {
testFailed("Exception thrown when accessing DynamicsCompressorNode attributes.");
}
Modified: trunk/Source/WebCore/ChangeLog (110950 => 110951)
--- trunk/Source/WebCore/ChangeLog 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/ChangeLog 2012-03-16 06:56:11 UTC (rev 110951)
@@ -1,3 +1,23 @@
+2012-03-15 Gao Chun <[email protected]>
+
+ Expose attack, release as DynamicsCompressorNode's attributes.
+ https://bugs.webkit.org/show_bug.cgi?id=81221
+
+ Reviewed by Chris Rogers.
+
+ Test: webaudio/dynamicscompressor-basic.html
+
+ * platform/audio/DynamicsCompressor.h:
+ (DynamicsCompressor):
+ * webaudio/DynamicsCompressorNode.cpp:
+ (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
+ (WebCore::DynamicsCompressorNode::process):
+ * webaudio/DynamicsCompressorNode.h:
+ (WebCore::DynamicsCompressorNode::attack):
+ (WebCore::DynamicsCompressorNode::release):
+ (DynamicsCompressorNode):
+ * webaudio/DynamicsCompressorNode.idl:
+
2012-03-15 Hans Wennborg <[email protected]>
Speech _javascript_ API: SpeechRecognition, Controller and Client
Modified: trunk/Source/WebCore/platform/audio/DynamicsCompressor.h (110950 => 110951)
--- trunk/Source/WebCore/platform/audio/DynamicsCompressor.h 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/platform/audio/DynamicsCompressor.h 2012-03-16 06:56:11 UTC (rev 110951)
@@ -85,8 +85,6 @@
unsigned m_numberOfChannels;
// m_parameters holds the tweakable compressor parameters.
- // FIXME: expose some of the most important ones (such as threshold, attack, release)
- // as DynamicsCompressorNode attributes.
float m_parameters[ParamLast];
void initializeParameters();
Modified: trunk/Source/WebCore/webaudio/DynamicsCompressorNode.cpp (110950 => 110951)
--- trunk/Source/WebCore/webaudio/DynamicsCompressorNode.cpp 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/webaudio/DynamicsCompressorNode.cpp 2012-03-16 06:56:11 UTC (rev 110951)
@@ -50,11 +50,15 @@
m_knee = AudioParam::create("knee", 30, 0, 40);
m_ratio = AudioParam::create("ratio", 12, 1, 20);
m_reduction = AudioParam::create("reduction", 0, -20, 0);
+ m_attack = AudioParam::create("attack", 0.003, 0, 1);
+ m_release = AudioParam::create("release", 0.250, 0, 1);
m_threshold->setContext(context);
m_knee->setContext(context);
m_ratio->setContext(context);
m_reduction->setContext(context);
+ m_attack->setContext(context);
+ m_release->setContext(context);
initialize();
}
@@ -72,10 +76,14 @@
float threshold = m_threshold->value();
float knee = m_knee->value();
float ratio = m_ratio->value();
+ float attack = m_attack->value();
+ float release = m_release->value();
m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamThreshold, threshold);
m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamKnee, knee);
m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamRatio, ratio);
+ m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamAttack, attack);
+ m_dynamicsCompressor->setParameterValue(DynamicsCompressor::ParamRelease, release);
m_dynamicsCompressor->process(input(0)->bus(), outputBus, framesToProcess);
Modified: trunk/Source/WebCore/webaudio/DynamicsCompressorNode.h (110950 => 110951)
--- trunk/Source/WebCore/webaudio/DynamicsCompressorNode.h 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/webaudio/DynamicsCompressorNode.h 2012-03-16 06:56:11 UTC (rev 110951)
@@ -52,6 +52,8 @@
AudioParam* threshold() { return m_threshold.get(); }
AudioParam* knee() { return m_knee.get(); }
AudioParam* ratio() { return m_ratio.get(); }
+ AudioParam* attack() { return m_attack.get(); }
+ AudioParam* release() { return m_release.get(); }
// Amount by which the compressor is currently compressing the signal in decibels.
AudioParam* reduction() { return m_reduction.get(); }
@@ -67,6 +69,8 @@
RefPtr<AudioParam> m_knee;
RefPtr<AudioParam> m_ratio;
RefPtr<AudioParam> m_reduction;
+ RefPtr<AudioParam> m_attack;
+ RefPtr<AudioParam> m_release;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/webaudio/DynamicsCompressorNode.idl (110950 => 110951)
--- trunk/Source/WebCore/webaudio/DynamicsCompressorNode.idl 2012-03-16 06:35:17 UTC (rev 110950)
+++ trunk/Source/WebCore/webaudio/DynamicsCompressorNode.idl 2012-03-16 06:56:11 UTC (rev 110951)
@@ -31,5 +31,7 @@
readonly attribute AudioParam knee; // in Decibels
readonly attribute AudioParam ratio; // unit-less
readonly attribute AudioParam reduction; // in Decibels
+ readonly attribute AudioParam attack; // in Seconds
+ readonly attribute AudioParam release; // in Seconds
};
}