content/media/webaudio/test/test_oscillatorNode2.html

Fri, 16 Jan 2015 04:50:19 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 04:50:19 +0100
branch
TOR_BUG_9701
changeset 13
44a2da4a2ab2
permissions
-rw-r--r--

Replace accessor implementation with direct member state manipulation, by
request https://trac.torproject.org/projects/tor/ticket/9701#comment:32

     1 <!DOCTYPE HTML>
     2 <html>
     3 <head>
     4   <title>Test OscillatorNode lifetime and sine phase</title>
     5   <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
     6   <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
     7 </head>
     8 <body>
     9 <pre id="test">
    10 <script src="webaudio.js" type="text/javascript"></script>
    11 <script class="testbody" type="text/javascript">
    13 const signalLength = 2048;
    15 function createOscillator(context) {
    16   var osc = context.createOscillator();
    17   osc.start(0);
    18   osc.stop(signalLength/context.sampleRate);
    19   return osc;
    20 }
    22 function connectUnreferencedOscillator(context, destination) {
    23   var osc = createOscillator(context);
    24   osc.connect(destination);
    25 }
    27 var gTest = {
    28   length: signalLength,
    29   numberOfChannels: 1,
    30   createGraph: function(context) {
    31     var blend = context.createGain();
    33     connectUnreferencedOscillator(context, blend);
    34     // Test that the unreferenced oscillator remains alive until it has finished.
    35     SpecialPowers.forceGC();
    36     SpecialPowers.forceCC();
    38     // Create another sine wave oscillator in negative time, which should
    39     // cancel when mixed with the unreferenced oscillator.
    40     var oscillator = createOscillator(context);
    41     oscillator.frequency.value = -440;
    42     oscillator.connect(blend);
    44     return blend;
    45   },
    46 };
    48 runTest();
    50 </script>
    51 </pre>
    52 </body>
    53 </html>

mercurial