@@ -273,6 +273,10 @@ <h2>
273
273
If the user declines or the call is denied for any other reason,
274
274
the Promise is rejected with a {{DOMException}} parameter.
275
275
</ p >
276
+ < p >
277
+ Multiple calls to < code > requestMIDIAccess()</ code > are
278
+ allowed even if not all vended Promises have settled.
279
+ </ p >
276
280
< p data-link-for ="Navigator ">
277
281
When the {{requestMIDIAccess()}} method is called, the user agent
278
282
MUST run the following steps:
@@ -666,8 +670,9 @@ <h2 id="MIDIPort">
666
670
Makes the [=MIDI device=] corresponding to the {{MIDIPort}}
667
671
explicitly available. Note that this call is NOT required in order
668
672
to use the {{MIDIPort}}- calling < code > send()</ code > on a
669
- {{MIDIOutput}} or attaching a MIDIMessageEvent handler on a
670
- {{MIDIInput}} will cause an implicit open(). The underlying
673
+ {{MIDIOutput}}, attaching a MIDIMessageEvent {{EventHandler}} on a
674
+ {{MIDIInput}}, or adding a MIDIMessageEvent {{EventListener}} on a
675
+ {{MIDIInput}} will cause an implicit open(). The underlying
671
676
implementation may not need to do anything in response to this
672
677
call. However, some underlying implementations may not be able to
673
678
support shared access to [=MIDI devices=], so using explicit
@@ -698,6 +703,10 @@ <h2 id="MIDIPort">
698
703
"MIDIPortDeviceState.connected "> "connected"</ a > or all references
699
704
to it are dropped.
700
705
</ p >
706
+ < p >
707
+ Multiple calls to < code > open()</ code > are allowed even
708
+ if not all vended Promises have settled.
709
+ </ p >
701
710
< p >
702
711
When this method is called, the user agent MUST run the
703
712
< dfn data-lt ="open the port "> algorithm to open a MIDIPort</ dfn > :
@@ -836,6 +845,10 @@ <h2 id="MIDIPort">
836
845
Promise is resolved. If the port is disconnected, the Promise is
837
846
rejected.
838
847
</ p >
848
+ < p >
849
+ Multiple calls to < code > close()</ code > are allowed even
850
+ if not all vended Promises have settled.
851
+ </ p >
839
852
< p >
840
853
When the < code > close()</ code > method is called, the user agent
841
854
MUST run the following steps:
@@ -873,12 +886,13 @@ <h2 id="MIDIPort">
873
886
< p >
874
887
If the port is an input port, skip to the next step. If the
875
888
output port's < a data-lt ="MIDIPort.state "> .state</ a > is not
876
- < a data-lt ="MIDIPortDeviceState.connected "> "connected"</ a > ,
877
- clear all enqueued send data and skip to the next step. Clear
878
- any enqueued send data in the system with timestamps in the
879
- future, then finish sending any send messages with no
880
- timestamp or with a timestamp in the past or present, prior
881
- to proceeding to the next step.
889
+ < a data-lt ="MIDIPortDeviceState.connected "> "connected"</ a >
890
+ or if its .connection is "pending", clear all enqueued send
891
+ data and skip to the next step. Clear any enqueued send data
892
+ in the system with timestamps in the future, then finish
893
+ sending any send messages with no timestamp or with a
894
+ timestamp in the past or present, prior to proceeding to
895
+ the next step.
882
896
</ p >
883
897
</ li >
884
898
< li >
@@ -905,11 +919,6 @@ <h2 id="MIDIPort">
905
919
value argument.
906
920
</ p >
907
921
</ li >
908
- < li >
909
- < p >
910
- Terminate these steps.
911
- </ p >
912
- </ li >
913
922
</ ol >
914
923
</ dd >
915
924
</ dl >
@@ -1064,7 +1073,10 @@ <h3 id="MIDIOutput">
1064
1073
{{DOMHighResTimeStamp}} - a number of milliseconds measured
1065
1074
relative to the navigation start of the document). If
1066
1075
< code > timestamp</ code > is set to zero (or another time in the
1067
- past), the data is to be sent as soon as possible.
1076
+ past), the data is to be sent as soon as possible. Multiple
1077
+ calls to < code > send()</ code > with the same timestamp must
1078
+ result in the data being sent in the order the calls were
1079
+ made.
1068
1080
</ dd >
1069
1081
</ dl >
1070
1082
</ dd >
0 commit comments