tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_midi_device_sysex.html (2024B)


      1 <html>
      2  <head>
      3    <title>WebMIDI Listener Test</title>
      4    <script src="/tests/SimpleTest/SimpleTest.js"></script>
      5    <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
      6    <script type="application/javascript" src="MIDITestUtils.js"></script>
      7  </head>
      8 
      9  <body onload="runTests()">
     10    <script class="testbody" type="application/javascript">
     11     SimpleTest.waitForExplicitFinish();
     12 
     13     async function runTests() {
     14       await MIDITestUtils.permissionSetup(true);
     15       var sysexCheckCount = 0;
     16       var checkCount = 0;
     17       var input;
     18       var output;
     19       function checkSysexReceive(event) {
     20         checkCount++;
     21         sysexCheckCount++;
     22         if (sysexCheckCount == 1) {
     23           is(event.data[0], 0xF0, "Echoed sysex message via sysex port");
     24         } else {
     25           is(event.data[0], 0x90, "Echoed regular message via sysex port");
     26         }
     27         if (checkCount == 5) {
     28           SimpleTest.finish();
     29         }
     30       }
     31 
     32       function checkNoSysexReceive(event) {
     33         checkCount++;
     34         is(event.data[0], 0x90, "Echoed regular message via non-sysex port");
     35         if (checkCount == 5) {
     36           SimpleTest.finish()
     37         }
     38       }
     39 
     40       // Request access without sysex.
     41       let access_regular = await navigator.requestMIDIAccess({ "sysex": false });
     42       let access_sysex = await navigator.requestMIDIAccess({ "sysex": true });
     43       ok(true, "MIDI Access Request successful");
     44       ok(true, "Check for sysex message drop");
     45       input = access_regular.inputs.get(await MIDITestUtils.inputInfo.id);
     46       output = access_sysex.outputs.get(await MIDITestUtils.outputInfo.id);
     47       let input_sysex = access_sysex.inputs.get(await MIDITestUtils.inputInfo.id);
     48       input_sysex.onmidimessage = checkSysexReceive;
     49       input.onmidimessage = checkNoSysexReceive;
     50       output.send([0xF0, 0x00, 0xF7]);
     51       output.send([0x90, 0x00, 0x01]);
     52       output.send([0x90, 0x00, 0x01]);
     53     }
     54    </script>
     55  </body>
     56 </html>