effect-web-midi 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +276 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/src/EMIDIAccess.js +129 -0
- package/dist/src/EMIDIAccess.js.map +1 -0
- package/dist/src/EMIDIInput.js +226 -0
- package/dist/src/EMIDIInput.js.map +1 -0
- package/dist/src/EMIDIOutput.js +227 -0
- package/dist/src/EMIDIOutput.js.map +1 -0
- package/dist/src/EMIDIPort.js +218 -0
- package/dist/src/EMIDIPort.js.map +1 -0
- package/dist/src/MIDIErrors.js +4 -0
- package/dist/src/MIDIErrors.js.map +1 -0
- package/dist/src/MIDIEventStreams.js +2 -0
- package/dist/src/MIDIEventStreams.js.map +1 -0
- package/dist/src/Parsing.js +2 -0
- package/dist/src/Parsing.js.map +1 -0
- package/dist/src/StreamMaker.js +1 -0
- package/dist/src/StreamMaker.js.map +1 -0
- package/dist/src/Util.js +2 -0
- package/dist/src/Util.js.map +1 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/internal/EMIDIAccess.js +634 -0
- package/dist/src/internal/EMIDIAccess.js.map +1 -0
- package/dist/src/internal/EMIDIInput.js +66 -0
- package/dist/src/internal/EMIDIInput.js.map +1 -0
- package/dist/src/internal/EMIDIOutput.js +120 -0
- package/dist/src/internal/EMIDIOutput.js.map +1 -0
- package/dist/src/internal/EMIDIPort.js +125 -0
- package/dist/src/internal/EMIDIPort.js.map +1 -0
- package/dist/src/internal/MIDIErrors.js +190 -0
- package/dist/src/internal/MIDIErrors.js.map +1 -0
- package/dist/src/internal/MIDIEventStreams.js +41 -0
- package/dist/src/internal/MIDIEventStreams.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPort.js +27 -0
- package/dist/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPort.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdAndAccess.js +19 -0
- package/dist/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdInContext.js +16 -0
- package/dist/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdInContext.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/actOnPort.js +17 -0
- package/dist/src/internal/MIDIPortMethodCalls/actOnPort.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPort.js +27 -0
- package/dist/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPort.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdAndAccess.js +18 -0
- package/dist/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdInContext.js +16 -0
- package/dist/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdInContext.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/makeMIDIPortMethodCallerFactory.js +21 -0
- package/dist/src/internal/MIDIPortMethodCalls/makeMIDIPortMethodCallerFactory.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPort.js +34 -0
- package/dist/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPort.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdAndAccess.js +18 -0
- package/dist/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdInContext.js +16 -0
- package/dist/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdInContext.js.map +1 -0
- package/dist/src/internal/Parsing.js +119 -0
- package/dist/src/internal/Parsing.js.map +1 -0
- package/dist/src/internal/StreamMaker.js +105 -0
- package/dist/src/internal/StreamMaker.js.map +1 -0
- package/dist/src/internal/Util.js +59 -0
- package/dist/src/internal/Util.js.map +1 -0
- package/dist/src/internal/getPortByPortId/getPortByPortIdAndAccess.js +53 -0
- package/dist/src/internal/getPortByPortId/getPortByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/getPortByPortId/getPortByPortIdInContext.js +18 -0
- package/dist/src/internal/getPortByPortId/getPortByPortIdInContext.js.map +1 -0
- package/dist/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPort.js +52 -0
- package/dist/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPort.js.map +1 -0
- package/dist/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdAndAccess.js +21 -0
- package/dist/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdInContext.js +21 -0
- package/dist/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdInContext.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPort.js +66 -0
- package/dist/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPort.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdAndAccess.js +61 -0
- package/dist/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdInContext.js +68 -0
- package/dist/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdInContext.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPort.js +42 -0
- package/dist/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPort.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdAndAccess.js +43 -0
- package/dist/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdInContext.js +33 -0
- package/dist/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdInContext.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/getValueInRawPortFieldUnsafe.js +6 -0
- package/dist/src/internal/mutablePropertyTools/getValueInRawPortFieldUnsafe.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPort.js +46 -0
- package/dist/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPort.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdAndAccess.js +25 -0
- package/dist/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdAndAccess.js.map +1 -0
- package/dist/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdInContext.js +31 -0
- package/dist/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdInContext.js.map +1 -0
- package/dist-types/index.d.ts +2 -0
- package/dist-types/index.d.ts.map +1 -0
- package/dist-types/src/EMIDIAccess.d.ts +18 -0
- package/dist-types/src/EMIDIAccess.d.ts.map +1 -0
- package/dist-types/src/EMIDIInput.d.ts +26 -0
- package/dist-types/src/EMIDIInput.d.ts.map +1 -0
- package/dist-types/src/EMIDIOutput.d.ts +26 -0
- package/dist-types/src/EMIDIOutput.d.ts.map +1 -0
- package/dist-types/src/EMIDIPort.d.ts +26 -0
- package/dist-types/src/EMIDIPort.d.ts.map +1 -0
- package/dist-types/src/MIDIErrors.d.ts +2 -0
- package/dist-types/src/MIDIErrors.d.ts.map +1 -0
- package/dist-types/src/MIDIEventStreams.d.ts +2 -0
- package/dist-types/src/MIDIEventStreams.d.ts.map +1 -0
- package/dist-types/src/Parsing.d.ts +2 -0
- package/dist-types/src/Parsing.d.ts.map +1 -0
- package/dist-types/src/StreamMaker.d.ts +2 -0
- package/dist-types/src/StreamMaker.d.ts.map +1 -0
- package/dist-types/src/Util.d.ts +2 -0
- package/dist-types/src/Util.d.ts.map +1 -0
- package/dist-types/src/index.d.ts +10 -0
- package/dist-types/src/index.d.ts.map +1 -0
- package/dist-types/src/internal/EMIDIAccess.d.ts +551 -0
- package/dist-types/src/internal/EMIDIAccess.d.ts.map +1 -0
- package/dist-types/src/internal/EMIDIInput.d.ts +50 -0
- package/dist-types/src/internal/EMIDIInput.d.ts.map +1 -0
- package/dist-types/src/internal/EMIDIOutput.d.ts +95 -0
- package/dist-types/src/internal/EMIDIOutput.d.ts.map +1 -0
- package/dist-types/src/internal/EMIDIPort.d.ts +90 -0
- package/dist-types/src/internal/EMIDIPort.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIErrors.d.ts +270 -0
- package/dist-types/src/internal/MIDIErrors.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIEventStreams.d.ts +74 -0
- package/dist-types/src/internal/MIDIEventStreams.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPort.d.ts +16 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPort.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdAndAccess.d.ts +15 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdInContext.d.ts +13 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdInContext.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/actOnPort.d.ts +11 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/actOnPort.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPort.d.ts +23 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPort.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdAndAccess.d.ts +15 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdInContext.d.ts +13 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdInContext.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/makeMIDIPortMethodCallerFactory.d.ts +15 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/makeMIDIPortMethodCallerFactory.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPort.d.ts +21 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPort.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdAndAccess.d.ts +15 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdInContext.d.ts +13 -0
- package/dist-types/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdInContext.d.ts.map +1 -0
- package/dist-types/src/internal/Parsing.d.ts +110 -0
- package/dist-types/src/internal/Parsing.d.ts.map +1 -0
- package/dist-types/src/internal/StreamMaker.d.ts +204 -0
- package/dist-types/src/internal/StreamMaker.d.ts.map +1 -0
- package/dist-types/src/internal/Util.d.ts +33 -0
- package/dist-types/src/internal/Util.d.ts.map +1 -0
- package/dist-types/src/internal/getPortByPortId/getPortByPortIdAndAccess.d.ts +27 -0
- package/dist-types/src/internal/getPortByPortId/getPortByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/getPortByPortId/getPortByPortIdInContext.d.ts +20 -0
- package/dist-types/src/internal/getPortByPortId/getPortByPortIdInContext.d.ts.map +1 -0
- package/dist-types/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPort.d.ts +76 -0
- package/dist-types/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPort.d.ts.map +1 -0
- package/dist-types/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdAndAccess.d.ts +39 -0
- package/dist-types/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdInContext.d.ts +29 -0
- package/dist-types/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdInContext.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPort.d.ts +62 -0
- package/dist-types/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPort.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdAndAccess.d.ts +16 -0
- package/dist-types/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdInContext.d.ts +65 -0
- package/dist-types/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdInContext.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPort.d.ts +36 -0
- package/dist-types/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPort.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdAndAccess.d.ts +23 -0
- package/dist-types/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdInContext.d.ts +35 -0
- package/dist-types/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdInContext.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/getValueInRawPortFieldUnsafe.d.ts +7 -0
- package/dist-types/src/internal/mutablePropertyTools/getValueInRawPortFieldUnsafe.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPort.d.ts +71 -0
- package/dist-types/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPort.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdAndAccess.d.ts +7 -0
- package/dist-types/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdAndAccess.d.ts.map +1 -0
- package/dist-types/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdInContext.d.ts +28 -0
- package/dist-types/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdInContext.d.ts.map +1 -0
- package/index.ts +1 -0
- package/package.json +87 -0
- package/src/EMIDIAccess.ts +285 -0
- package/src/EMIDIInput.ts +273 -0
- package/src/EMIDIOutput.ts +272 -0
- package/src/EMIDIPort.ts +270 -0
- package/src/MIDIErrors.ts +13 -0
- package/src/MIDIEventStreams.ts +36 -0
- package/src/Parsing.ts +32 -0
- package/src/StreamMaker.ts +12 -0
- package/src/Util.ts +19 -0
- package/src/index.ts +9 -0
- package/src/internal/EMIDIAccess.ts +1280 -0
- package/src/internal/EMIDIInput.ts +114 -0
- package/src/internal/EMIDIOutput.ts +231 -0
- package/src/internal/EMIDIPort.ts +239 -0
- package/src/internal/MIDIErrors.ts +260 -0
- package/src/internal/MIDIEventStreams.ts +255 -0
- package/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPort.ts +48 -0
- package/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdAndAccess.ts +31 -0
- package/src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdInContext.ts +28 -0
- package/src/internal/MIDIPortMethodCalls/actOnPort.ts +66 -0
- package/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPort.ts +38 -0
- package/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdAndAccess.ts +38 -0
- package/src/internal/MIDIPortMethodCalls/closePortConnection/closePortConnectionByPortIdInContext.ts +28 -0
- package/src/internal/MIDIPortMethodCalls/makeMIDIPortMethodCallerFactory.ts +68 -0
- package/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPort.ts +48 -0
- package/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdAndAccess.ts +38 -0
- package/src/internal/MIDIPortMethodCalls/openPortConnection/openPortConnectionByPortIdInContext.ts +28 -0
- package/src/internal/Parsing.ts +304 -0
- package/src/internal/StreamMaker.ts +416 -0
- package/src/internal/Util.ts +152 -0
- package/src/internal/getPortByPortId/getPortByPortIdAndAccess.ts +117 -0
- package/src/internal/getPortByPortId/getPortByPortIdInContext.ts +26 -0
- package/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPort.ts +148 -0
- package/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdAndAccess.ts +135 -0
- package/src/internal/makePortStateChangesStream/makePortStateChangesStreamByPortIdInContext.ts +70 -0
- package/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPort.ts +128 -0
- package/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdAndAccess.ts +74 -0
- package/src/internal/mutablePropertyTools/doesMutablePortPropertyHaveSpecificValue/doesMutablePortPropertyHaveSpecificValueByPortIdInContext.ts +132 -0
- package/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPort.ts +64 -0
- package/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdAndAccess.ts +114 -0
- package/src/internal/mutablePropertyTools/getMutablePortProperty/getMutablePortPropertyByPortIdInContext.ts +47 -0
- package/src/internal/mutablePropertyTools/getValueInRawPortFieldUnsafe.ts +12 -0
- package/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPort.ts +182 -0
- package/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdAndAccess.ts +29 -0
- package/src/internal/mutablePropertyTools/matchMutablePortProperty/matchMutablePortPropertyByPortIdInContext.ts +87 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/** biome-ignore-all lint/style/useShorthandFunctionType: It's a nice way to
|
|
2
|
+
* preserve JSDoc comments attached to the function signature */
|
|
3
|
+
import * as Brand from 'effect/Brand';
|
|
4
|
+
import * as Effect from 'effect/Effect';
|
|
5
|
+
import * as EMIDIPort from './EMIDIPort.ts';
|
|
6
|
+
import * as MIDIErrors from './MIDIErrors.ts';
|
|
7
|
+
import * as Util from './Util.ts';
|
|
8
|
+
/**
|
|
9
|
+
* Thin wrapper around {@linkcode MIDIOutput} instance. Will be seen in all
|
|
10
|
+
* external code.
|
|
11
|
+
*/
|
|
12
|
+
export interface EMIDIOutput extends EMIDIPort.EMIDIPort<'output'> {
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Asserts an object to be valid EMIDIOutput
|
|
16
|
+
*/
|
|
17
|
+
export declare const assert: (output: unknown) => EMIDIOutput;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare const make: (rawOutput: MIDIOutput) => EMIDIOutput;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
export declare const is: (output: unknown) => output is EMIDIOutput;
|
|
27
|
+
/**
|
|
28
|
+
* If `midiMessage` is a System Exclusive message, and the `MIDIAccess` did not
|
|
29
|
+
* enable System Exclusive access, an `InvalidAccessError` exception will be
|
|
30
|
+
* thrown
|
|
31
|
+
*
|
|
32
|
+
* If the port is `"connected"` and the connection is `"closed"`, asynchronously
|
|
33
|
+
* tries to open the port. It's unclear in the spec if potential error of `open`
|
|
34
|
+
* call would result in an `InvalidAccessError` error coming from the `send`
|
|
35
|
+
* method itself.
|
|
36
|
+
*
|
|
37
|
+
* @returns An effect with the same port for easier chaining of operations
|
|
38
|
+
*/
|
|
39
|
+
export declare const send: DualSendMIDIMessageFromPort;
|
|
40
|
+
/**
|
|
41
|
+
* Clears any enqueued send data that has not yet been sent from the
|
|
42
|
+
* `MIDIOutput`'s queue. The browser will ensure the MIDI stream is left in a
|
|
43
|
+
* good state, and if the output port is in the middle of a sysex message, a
|
|
44
|
+
* sysex termination byte (`0xf7`) will be sent.
|
|
45
|
+
*
|
|
46
|
+
* @param polymorphicOutput An effectful output port
|
|
47
|
+
*
|
|
48
|
+
* @returns An effect with the same port for easier chaining of operations
|
|
49
|
+
* @experimental Supported only in Firefox. {@link https://caniuse.com/mdn-api_midioutput_clear|Can I use - MIDIOutput API: clear}
|
|
50
|
+
* @see {@link https://www.w3.org/TR/webmidi/#dom-midioutput-clear|Web MIDI spec}, {@link https://developer.mozilla.org/en-US/docs/Web/API/MIDIOutput/clear|MDN reference}
|
|
51
|
+
*/
|
|
52
|
+
export declare const clear: <E = never, R = never>(polymorphicOutput: PolymorphicOutput<E, R>) => Effect.Effect<EMIDIPort.EMIDIPort<"output">, E | MIDIErrors.ClearingSendingQueueIsNotSupportedError, R>;
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
*
|
|
56
|
+
*/
|
|
57
|
+
export type PolymorphicOutput<E, R> = EMIDIPort.PolymorphicPort<E, R, 'output'>;
|
|
58
|
+
/**
|
|
59
|
+
*
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
export type PolymorphicOutputClean = EMIDIPort.PolymorphicPortClean<'output'>;
|
|
63
|
+
export type SendFromPortArgs = [
|
|
64
|
+
midiMessage: Iterable<number>,
|
|
65
|
+
timestamp?: DOMHighResTimeStamp
|
|
66
|
+
];
|
|
67
|
+
export interface DualSendMIDIMessageFromPort extends SendMIDIMessagePortLast, SendMIDIMessagePortFirst {
|
|
68
|
+
}
|
|
69
|
+
export interface SendMIDIMessagePortLast {
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
(...args: SendFromPortArgs): {
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
*/
|
|
77
|
+
<E = never, R = never>(polymorphicOutput: PolymorphicOutput<E, R>): SentMessageEffectFromPort<E, R>;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export interface SendMIDIMessagePortFirst {
|
|
81
|
+
/**
|
|
82
|
+
*
|
|
83
|
+
*/
|
|
84
|
+
<E = never, R = never>(polymorphicOutput: PolymorphicOutput<E, R>, ...args: SendFromPortArgs): SentMessageEffectFromPort<E, R>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
*
|
|
88
|
+
*/
|
|
89
|
+
export interface SentMessageEffectFromPort<E = never, R = never> extends Util.SentMessageEffectFrom<EMIDIOutput, E, R> {
|
|
90
|
+
}
|
|
91
|
+
export type Id = EMIDIPort.Id<'output'>;
|
|
92
|
+
export declare const Id: Brand.Brand.Constructor<string & Brand.Brand<"MIDIPortId"> & Brand.Brand<"output">>;
|
|
93
|
+
export interface OutputIdToInstanceMap extends Record<Id, EMIDIOutput> {
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=EMIDIOutput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EMIDIOutput.d.ts","sourceRoot":"","sources":["../../../src/internal/EMIDIOutput.ts"],"names":[],"mappings":"AAAA;gEACgE;AAEhE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;CAAG;AA+BrE;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,WAAwB,CAAA;AAQlE;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,WAAsB,CAAA;AAQpE;;GAEG;AACH,eAAO,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,MAAM,IAAI,WAAoB,CAAA;AAWpE;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,EAAE,2BAmClB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,KAAK,GAChB,CAAC,UACD,CAAC,gKA0BD,CAAA;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;AAE/E;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAA;AAE7E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,mBAAmB;CAChC,CAAA;AAED,MAAM,WAAW,2BACf,SAAQ,uBAAuB,EAC7B,wBAAwB;CAAG;AAE/B,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,CACE,GAAG,IAAI,EAAE,gBAAgB,GACxB;QACD;;WAEG;QACH,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACnB,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,GACzC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KACnC,CAAA;CACF;AAED,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACnB,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC1C,GAAG,IAAI,EAAE,gBAAgB,GACxB,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAC7D,SAAQ,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;CAAG;AAE1D,MAAM,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAA;AACvC,eAAO,MAAM,EAAE,qFAAsB,CAAA;AAErC,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC;CAAG"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/** biome-ignore-all lint/style/useShorthandFunctionType: It's a nice way to
|
|
2
|
+
* preserve JSDoc comments attached to the function signature */
|
|
3
|
+
import * as Brand from 'effect/Brand';
|
|
4
|
+
import * as Equal from 'effect/Equal';
|
|
5
|
+
import * as Inspectable from 'effect/Inspectable';
|
|
6
|
+
import * as Pipeable from 'effect/Pipeable';
|
|
7
|
+
import type * as EMIDIInput from './EMIDIInput.ts';
|
|
8
|
+
import type * as EMIDIOutput from './EMIDIOutput.ts';
|
|
9
|
+
import type * as Util from './Util.ts';
|
|
10
|
+
/**
|
|
11
|
+
* Unique symbol used for distinguishing {@linkcode EMIDIPort} instances
|
|
12
|
+
* from other objects at both runtime and type-level
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
declare const TypeId: unique symbol;
|
|
16
|
+
/**
|
|
17
|
+
* Unique symbol used for distinguishing {@linkcode EMIDIPort} instances
|
|
18
|
+
* from other objects at both runtime and type-level
|
|
19
|
+
*/
|
|
20
|
+
export type TypeId = typeof TypeId;
|
|
21
|
+
/**
|
|
22
|
+
* Thin wrapper around {@linkcode MIDIPort} instance. Will be seen in all
|
|
23
|
+
* external code.
|
|
24
|
+
*/
|
|
25
|
+
export interface EMIDIPort<TMIDIPortType extends MIDIPortType = MIDIPortType> extends Equal.Equal, Pipeable.Pipeable, Inspectable.Inspectable, Pick<MIDIPort, 'version' | 'name' | 'manufacturer'> {
|
|
26
|
+
/**
|
|
27
|
+
* The **`id`** read-only property of the MIDIPort interface returns the unique ID of the port.
|
|
28
|
+
*
|
|
29
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/id)
|
|
30
|
+
*/
|
|
31
|
+
readonly id: Id<TMIDIPortType>;
|
|
32
|
+
readonly [TypeId]: TypeId;
|
|
33
|
+
readonly _tag: 'EMIDIPort';
|
|
34
|
+
readonly type: TMIDIPortType;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Thin wrapper around {@linkcode MIDIPort} instance giving access to the
|
|
38
|
+
* actual field storing it.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
export interface EMIDIPortImpl<TPort extends MIDIPort = MIDIPort, TPortType extends MIDIPortType = MIDIPortType> extends EMIDIPort<TPortType> {
|
|
42
|
+
readonly _port: TPort;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare const makeImpl: <TPort extends MIDIPort, TPortType extends MIDIPortType>(port: NoInfer<TPort>, type: TPortType, ClassToAssertInheritance: new (...args: unknown[]) => TPort) => EMIDIPortImpl<TPort, TPortType>;
|
|
50
|
+
/**
|
|
51
|
+
* Asserts an object to be valid EMIDIPort
|
|
52
|
+
*/
|
|
53
|
+
export declare const assert: (port: unknown) => EMIDIPort;
|
|
54
|
+
/**
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
export declare const assumeImpl: (port: EMIDIPort) => EMIDIPortImpl;
|
|
58
|
+
/**
|
|
59
|
+
*
|
|
60
|
+
*
|
|
61
|
+
*/
|
|
62
|
+
export type PolymorphicPort<E, R, TMIDIPortType extends MIDIPortType = MIDIPortType> = Util.PolymorphicEffect<EMIDIPort<TMIDIPortType>, E, R>;
|
|
63
|
+
/**
|
|
64
|
+
*
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
export type PolymorphicPortClean<TMIDIPortType extends MIDIPortType = MIDIPortType> = PolymorphicPort<never, never, TMIDIPortType>;
|
|
68
|
+
export type ExtractTypeFromPort<TPort extends EMIDIPort> = TPort extends EMIDIPort<infer TPortType> ? TPortType : never;
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
*
|
|
72
|
+
* @internal
|
|
73
|
+
*/
|
|
74
|
+
export declare const isImplOfSpecificType: <const TPortType extends MIDIPortType, TPort extends MIDIPort>(type: TPortType, ClassToAssertInheritance: new (...args: unknown[]) => TPort) => (port: unknown) => port is EMIDIPortImpl<TPort, TPortType>;
|
|
75
|
+
/**
|
|
76
|
+
*
|
|
77
|
+
*
|
|
78
|
+
*/
|
|
79
|
+
export declare const is: (port: unknown) => port is EMIDIPort;
|
|
80
|
+
/**
|
|
81
|
+
* Unique identifier of the MIDI port.
|
|
82
|
+
*
|
|
83
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/MIDIPort/id)
|
|
84
|
+
*/
|
|
85
|
+
export type Id<TPortType extends MIDIPortType> = TPortType extends MIDIPortType ? Brand.Branded<string, 'MIDIPortId'> & Brand.Brand<TPortType> : never;
|
|
86
|
+
export type BothId = Id<MIDIPortType>;
|
|
87
|
+
export declare const BothId: Brand.Brand.Constructor<BothId>;
|
|
88
|
+
export type BothIdToBothInstanceMap = EMIDIInput.InputIdToInstanceMap & EMIDIOutput.OutputIdToInstanceMap;
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=EMIDIPort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EMIDIPort.d.ts","sourceRoot":"","sources":["../../../src/internal/EMIDIPort.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import * as Schema from 'effect/Schema';
|
|
2
|
+
import type * as Types from 'effect/Types';
|
|
3
|
+
import * as EMIDIPort from './EMIDIPort.ts';
|
|
4
|
+
declare const AbortError_base: Schema.TaggedErrorClass<AbortError, "AbortError", {
|
|
5
|
+
readonly _tag: Schema.tag<"AbortError">;
|
|
6
|
+
} & {
|
|
7
|
+
cause: Schema.Struct<{
|
|
8
|
+
name: Schema.Literal<["AbortError"]>;
|
|
9
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
10
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
11
|
+
exact: true;
|
|
12
|
+
}>;
|
|
13
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
14
|
+
exact: true;
|
|
15
|
+
}>;
|
|
16
|
+
}>;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Thrown if the document or page is going to be closed due to user navigation.
|
|
20
|
+
*
|
|
21
|
+
* Wraps `DOMException { name: 'AbortError' }`
|
|
22
|
+
*
|
|
23
|
+
* @see {@link https://webidl.spec.whatwg.org/#aborterror|Web IDL spec}
|
|
24
|
+
*/
|
|
25
|
+
export declare class AbortError extends AbortError_base {
|
|
26
|
+
get message(): string;
|
|
27
|
+
}
|
|
28
|
+
declare const UnderlyingSystemError_base: Schema.TaggedErrorClass<UnderlyingSystemError, "UnderlyingSystemError", {
|
|
29
|
+
readonly _tag: Schema.tag<"UnderlyingSystemError">;
|
|
30
|
+
} & {
|
|
31
|
+
whileAskingForPermissions: Schema.Struct<{
|
|
32
|
+
sysex: Schema.optional<typeof Schema.Boolean>;
|
|
33
|
+
software: Schema.optional<typeof Schema.Boolean>;
|
|
34
|
+
}>;
|
|
35
|
+
cause: Schema.Struct<{
|
|
36
|
+
name: Schema.Literal<["InvalidStateError"]>;
|
|
37
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
38
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
39
|
+
exact: true;
|
|
40
|
+
}>;
|
|
41
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
42
|
+
exact: true;
|
|
43
|
+
}>;
|
|
44
|
+
}>;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Thrown if the underlying system raises any errors when trying to open the
|
|
48
|
+
* port.
|
|
49
|
+
*
|
|
50
|
+
* Wraps `DOMException { name: 'InvalidStateError' }`
|
|
51
|
+
*
|
|
52
|
+
* @see {@link https://webidl.spec.whatwg.org/#invalidstateerror|Web IDL spec}
|
|
53
|
+
*/
|
|
54
|
+
export declare class UnderlyingSystemError extends UnderlyingSystemError_base {
|
|
55
|
+
get message(): string;
|
|
56
|
+
}
|
|
57
|
+
declare const MIDIAccessNotSupportedError_base: Schema.TaggedErrorClass<MIDIAccessNotSupportedError, "MIDIAccessNotSupportedError", {
|
|
58
|
+
readonly _tag: Schema.tag<"MIDIAccessNotSupportedError">;
|
|
59
|
+
} & {
|
|
60
|
+
whileAskingForPermissions: Schema.Struct<{
|
|
61
|
+
sysex: Schema.optional<typeof Schema.Boolean>;
|
|
62
|
+
software: Schema.optional<typeof Schema.Boolean>;
|
|
63
|
+
}>;
|
|
64
|
+
cause: Schema.Struct<{
|
|
65
|
+
name: Schema.Literal<["ReferenceError", "TypeError", "NotSupportedError"]>;
|
|
66
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
67
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
68
|
+
exact: true;
|
|
69
|
+
}>;
|
|
70
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
71
|
+
exact: true;
|
|
72
|
+
}>;
|
|
73
|
+
}>;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Thrown if the MIDI API, or a certain configuration of it is not supported by
|
|
77
|
+
* the system.
|
|
78
|
+
*
|
|
79
|
+
* Wraps `ReferenceError | TypeError | DOMException { name: 'NotSupportedError' }`
|
|
80
|
+
*
|
|
81
|
+
* @see {@link https://webidl.spec.whatwg.org/#notsupportederror|Web IDL spec}
|
|
82
|
+
*/
|
|
83
|
+
export declare class MIDIAccessNotSupportedError extends MIDIAccessNotSupportedError_base {
|
|
84
|
+
get message(): string;
|
|
85
|
+
}
|
|
86
|
+
declare const ClearingSendingQueueIsNotSupportedError_base: Schema.TaggedErrorClass<ClearingSendingQueueIsNotSupportedError, "ClearingSendingQueueIsNotSupportedError", {
|
|
87
|
+
readonly _tag: Schema.tag<"ClearingSendingQueueIsNotSupportedError">;
|
|
88
|
+
} & {
|
|
89
|
+
cause: Schema.Struct<{
|
|
90
|
+
name: Schema.Literal<["TypeError", "NotSupportedError"]>;
|
|
91
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
92
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
93
|
+
exact: true;
|
|
94
|
+
}>;
|
|
95
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
96
|
+
exact: true;
|
|
97
|
+
}>;
|
|
98
|
+
}>;
|
|
99
|
+
portId: Schema.BrandSchema<string & EMIDIPort.BothId, string, never>;
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* Thrown on platforms where `.clear()` method of output ports is not supported
|
|
103
|
+
* (currently supported only in Firefox)
|
|
104
|
+
*
|
|
105
|
+
* Wraps `TypeError | DOMException { name: 'NotSupportedError' }`
|
|
106
|
+
*
|
|
107
|
+
* @see {@link https://webidl.spec.whatwg.org/#notsupportederror|Web IDL spec}
|
|
108
|
+
*/
|
|
109
|
+
export declare class ClearingSendingQueueIsNotSupportedError extends ClearingSendingQueueIsNotSupportedError_base {
|
|
110
|
+
get message(): string;
|
|
111
|
+
}
|
|
112
|
+
declare const CannotOpenUnavailablePortError_base: Schema.TaggedErrorClass<CannotOpenUnavailablePortError, "CannotOpenUnavailablePortError", {
|
|
113
|
+
readonly _tag: Schema.tag<"CannotOpenUnavailablePortError">;
|
|
114
|
+
} & {
|
|
115
|
+
cause: Schema.Struct<{
|
|
116
|
+
name: Schema.Literal<["InvalidAccessError", "NotAllowedError", "InvalidStateError"]>;
|
|
117
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
118
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
119
|
+
exact: true;
|
|
120
|
+
}>;
|
|
121
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
122
|
+
exact: true;
|
|
123
|
+
}>;
|
|
124
|
+
}>;
|
|
125
|
+
portId: Schema.BrandSchema<string & EMIDIPort.BothId, string, never>;
|
|
126
|
+
}>;
|
|
127
|
+
/**
|
|
128
|
+
* Thrown when attempt to open the port failed because it is unavailable (e.g.
|
|
129
|
+
* is already in use by another process and cannot be opened, or is
|
|
130
|
+
* disconnected).
|
|
131
|
+
*
|
|
132
|
+
* Wraps `DOMException { name: 'InvalidAccessError' | 'NotAllowedError' | 'InvalidStateError' }`
|
|
133
|
+
*
|
|
134
|
+
* @see Web IDL specs: {@link https://webidl.spec.whatwg.org/#invalidaccesserror|InvalidAccessError}, {@link https://webidl.spec.whatwg.org/#notallowederror|NotAllowedError}, {@link https://webidl.spec.whatwg.org/#invalidstateerror|InvalidStateError}
|
|
135
|
+
*/
|
|
136
|
+
export declare class CannotOpenUnavailablePortError extends CannotOpenUnavailablePortError_base {
|
|
137
|
+
get message(): string;
|
|
138
|
+
}
|
|
139
|
+
declare const CannotSendToDisconnectedPortError_base: Schema.TaggedErrorClass<CannotSendToDisconnectedPortError, "CannotSendToDisconnectedPortError", {
|
|
140
|
+
readonly _tag: Schema.tag<"CannotSendToDisconnectedPortError">;
|
|
141
|
+
} & {
|
|
142
|
+
cause: Schema.Struct<{
|
|
143
|
+
name: Schema.Literal<["InvalidStateError"]>;
|
|
144
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
145
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
146
|
+
exact: true;
|
|
147
|
+
}>;
|
|
148
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
149
|
+
exact: true;
|
|
150
|
+
}>;
|
|
151
|
+
}>;
|
|
152
|
+
portId: Schema.BrandSchema<string & EMIDIPort.BothId, string, never>;
|
|
153
|
+
}>;
|
|
154
|
+
/**
|
|
155
|
+
* Thrown when `.send` operation was called on a disconnected port.
|
|
156
|
+
*
|
|
157
|
+
* Wraps `DOMException { name: 'InvalidStateError' }`
|
|
158
|
+
*
|
|
159
|
+
* @see {@link https://webidl.spec.whatwg.org/#invalidaccesserror|Web IDL spec}
|
|
160
|
+
*/
|
|
161
|
+
export declare class CannotSendToDisconnectedPortError extends CannotSendToDisconnectedPortError_base {
|
|
162
|
+
get message(): string;
|
|
163
|
+
}
|
|
164
|
+
declare const CannotSendSysexMessageError_base: Schema.TaggedErrorClass<CannotSendSysexMessageError, "CannotSendSysexMessageError", {
|
|
165
|
+
readonly _tag: Schema.tag<"CannotSendSysexMessageError">;
|
|
166
|
+
} & {
|
|
167
|
+
cause: Schema.Struct<{
|
|
168
|
+
name: Schema.Literal<["InvalidAccessError", "NotAllowedError"]>;
|
|
169
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
170
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
171
|
+
exact: true;
|
|
172
|
+
}>;
|
|
173
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
174
|
+
exact: true;
|
|
175
|
+
}>;
|
|
176
|
+
}>;
|
|
177
|
+
portId: Schema.BrandSchema<string & EMIDIPort.BothId, string, never>;
|
|
178
|
+
}>;
|
|
179
|
+
/**
|
|
180
|
+
* Thrown when trying to send system exclusive message from the access handle,
|
|
181
|
+
* that doesn't have this permission
|
|
182
|
+
*
|
|
183
|
+
* Wraps `DOMException { name: 'InvalidAccessError' | 'NotAllowedError' }`
|
|
184
|
+
*
|
|
185
|
+
* @see Web IDL specs: {@link https://webidl.spec.whatwg.org/#invalidaccesserror|InvalidAccessError}, {@link https://webidl.spec.whatwg.org/#notallowederror|NotAllowedError}
|
|
186
|
+
*/
|
|
187
|
+
export declare class CannotSendSysexMessageError extends CannotSendSysexMessageError_base {
|
|
188
|
+
get message(): string;
|
|
189
|
+
}
|
|
190
|
+
declare const MIDIAccessNotAllowedError_base: Schema.TaggedErrorClass<MIDIAccessNotAllowedError, "MIDIAccessNotAllowedError", {
|
|
191
|
+
readonly _tag: Schema.tag<"MIDIAccessNotAllowedError">;
|
|
192
|
+
} & {
|
|
193
|
+
whileAskingForPermissions: Schema.Struct<{
|
|
194
|
+
sysex: Schema.optional<typeof Schema.Boolean>;
|
|
195
|
+
software: Schema.optional<typeof Schema.Boolean>;
|
|
196
|
+
}>;
|
|
197
|
+
cause: Schema.Struct<{
|
|
198
|
+
name: Schema.Literal<["NotAllowedError", "SecurityError"]>;
|
|
199
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
200
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
201
|
+
exact: true;
|
|
202
|
+
}>;
|
|
203
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
204
|
+
exact: true;
|
|
205
|
+
}>;
|
|
206
|
+
}>;
|
|
207
|
+
}>;
|
|
208
|
+
/**
|
|
209
|
+
* Thrown if the user, the system or their security settings denied the
|
|
210
|
+
* application from creating an {@linkcode EMIDIAccess.EMIDIAccessInstance} object
|
|
211
|
+
* with the requested {@linkcode EMIDIAccess.RequestMIDIAccessOptions|options}, or if the
|
|
212
|
+
* document is not allowed to use the feature (for example, because of a
|
|
213
|
+
* Permission Policy, or because the user previously denied a permission
|
|
214
|
+
* request).
|
|
215
|
+
*
|
|
216
|
+
* Wraps `DOMException { name: 'NotAllowedError' | 'SecurityError' }`
|
|
217
|
+
*
|
|
218
|
+
* @see Web IDL specs: {@link https://webidl.spec.whatwg.org/#notallowederror|NotAllowedError}, {@link https://webidl.spec.whatwg.org/#securityerror|SecurityError}
|
|
219
|
+
*/
|
|
220
|
+
export declare class MIDIAccessNotAllowedError extends MIDIAccessNotAllowedError_base {
|
|
221
|
+
get message(): string;
|
|
222
|
+
}
|
|
223
|
+
declare const MalformedMIDIMessageError_base: Schema.TaggedErrorClass<MalformedMIDIMessageError, "MalformedMIDIMessageError", {
|
|
224
|
+
readonly _tag: Schema.tag<"MalformedMIDIMessageError">;
|
|
225
|
+
} & {
|
|
226
|
+
cause: Schema.Struct<{
|
|
227
|
+
name: Schema.Literal<["TypeError"]>;
|
|
228
|
+
message: typeof Schema.NonEmptyTrimmedString;
|
|
229
|
+
stack: Schema.optionalWith<typeof Schema.NonEmptyTrimmedString, {
|
|
230
|
+
exact: true;
|
|
231
|
+
}>;
|
|
232
|
+
cause: Schema.optionalWith<typeof Schema.Unknown, {
|
|
233
|
+
exact: true;
|
|
234
|
+
}>;
|
|
235
|
+
}>;
|
|
236
|
+
portId: Schema.BrandSchema<string & EMIDIPort.BothId, string, never>;
|
|
237
|
+
midiMessage: Schema.Array$<typeof Schema.Int>;
|
|
238
|
+
}>;
|
|
239
|
+
/**
|
|
240
|
+
* Thrown when data to be sent is not a valid sequence or does not contain a
|
|
241
|
+
* valid MIDI message
|
|
242
|
+
*
|
|
243
|
+
* Wraps `TypeError`
|
|
244
|
+
*/
|
|
245
|
+
export declare class MalformedMIDIMessageError extends MalformedMIDIMessageError_base {
|
|
246
|
+
get message(): string;
|
|
247
|
+
}
|
|
248
|
+
declare const PortNotFoundError_base: Schema.TaggedErrorClass<PortNotFoundError, "PortNotFound", {
|
|
249
|
+
readonly _tag: Schema.tag<"PortNotFound">;
|
|
250
|
+
} & {
|
|
251
|
+
portId: Schema.BrandSchema<string & EMIDIPort.BothId, string, never>;
|
|
252
|
+
}>;
|
|
253
|
+
/**
|
|
254
|
+
* Keep in mind that if port isn't found, it might not mean it's disconnected.
|
|
255
|
+
* For example, virtual ports created by software won't show up in the list of
|
|
256
|
+
* available inputs/outputs of MIDI Access handle with disabled
|
|
257
|
+
* {@linkcode EMIDIAccess.RequestMIDIAccessOptions.software} flag.
|
|
258
|
+
*/
|
|
259
|
+
export declare class PortNotFoundError extends PortNotFoundError_base {
|
|
260
|
+
get message(): string;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
*
|
|
264
|
+
* @internal
|
|
265
|
+
*/
|
|
266
|
+
export declare const remapErrorByName: <TErrorClassUnion extends new (arg: any) => Error>(map: {
|
|
267
|
+
[name: string]: TErrorClassUnion;
|
|
268
|
+
}, absurdMessage: string, rest: Omit<Types.UnionToIntersection<TErrorClassUnion extends new (arg: infer P) => any ? P : never>, 'cause'>) => (cause: unknown) => InstanceType<TErrorClassUnion>;
|
|
269
|
+
export {};
|
|
270
|
+
//# sourceMappingURL=MIDIErrors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MIDIErrors.d.ts","sourceRoot":"","sources":["../../../src/internal/MIDIErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;;;;;;;;;;;;;;;AA6B3C;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,eAE9B;IACA,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;;;;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,0BAM1C;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;;;;AAED;;;;;;;GAOG;AACH,qBAAa,2BAA4B,SAAQ,gCAQhD;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;AAED;;;;;;;GAOG;AACH,qBAAa,uCAAwC,SAAQ,4CAM5D;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;AAED;;;;;;;;GAQG;AACH,qBAAa,8BAA+B,SAAQ,mCAYnD;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;AAED;;;;;;GAMG;AACH,qBAAa,iCAAkC,SAAQ,sCAMtD;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;AAED;;;;;;;GAOG;AACH,qBAAa,2BAA4B,SAAQ,gCAMhD;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;;;;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,yBAA0B,SAAQ,8BAM9C;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;;;;;;;;;;;;AAED;;;;;GAKG;AACH,qBAAa,yBAA0B,SAAQ,8BAO9C;IACC,IAAa,OAAO,WAEnB;CACF;;;;;;AAED;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,sBAGtC;IACC,IAAa,OAAO,WAEnB;CACF;AAGD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC1B,gBAAgB,SAAS,KAAK,GAAG,EAAE,GAAG,KAAK,KAAK,OAC1C;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAE,iBAC1B,MAAM,QACf,IAAI,CACR,KAAK,CAAC,mBAAmB,CACvB,gBAAgB,SAAS,KAAK,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAC/D,EACD,OAAO,CACR,aAEK,OAAO,KAQP,YAAY,CAAC,gBAAgB,CACpC,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as Stream from 'effect/Stream';
|
|
2
|
+
import * as EMIDIAccess from './EMIDIAccess.ts';
|
|
3
|
+
import * as EMIDIInput from './EMIDIInput.ts';
|
|
4
|
+
import type * as MIDIErrors from './MIDIErrors.ts';
|
|
5
|
+
import * as Parsing from './Parsing.ts';
|
|
6
|
+
import type * as StreamMaker from './StreamMaker.ts';
|
|
7
|
+
export type ForbidNullsStrategy = Exclude<StreamMaker.OnNullStrategy, 'passthrough'>;
|
|
8
|
+
export interface DualMakeSpecificMessageStreamFromInput<Payload extends Parsing.TaggedObject> extends MakeSpecificMessageStreamInputLast<Payload>, MakeSpecificMessageStreamInputFirst<Payload> {
|
|
9
|
+
}
|
|
10
|
+
export interface MakeSpecificMessageStreamInputFirst<Payload extends Parsing.TaggedObject> {
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
<E = never, R = never, const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(polymorphicInput: EMIDIInput.PolymorphicInput<E, R>, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>): MakeSpecificMessageStreamResult<Payload, TForbidNullsStrategy, E, R>;
|
|
15
|
+
}
|
|
16
|
+
export interface MakeSpecificMessageStreamInputLast<Payload extends Parsing.TaggedObject> {
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
<const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>): MakeSpecificMessageStreamInputLastSecondPart<Payload, TForbidNullsStrategy>;
|
|
21
|
+
}
|
|
22
|
+
export interface MakeSpecificMessageStreamInputLastSecondPart<Payload extends Parsing.TaggedObject, TForbidNullsStrategy extends ForbidNullsStrategy> {
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
<E = never, R = never>(polymorphicInput: EMIDIInput.PolymorphicInput<E, R>): MakeSpecificMessageStreamResult<Payload, TForbidNullsStrategy, E, R>;
|
|
27
|
+
}
|
|
28
|
+
export interface DualMakeSpecificMessageStreamFromAccess<Payload extends Parsing.TaggedObject> extends MakeSpecificMessageStreamAccessLast<Payload>, MakeSpecificMessageStreamAccessFirst<Payload> {
|
|
29
|
+
}
|
|
30
|
+
export interface MakeSpecificMessageStreamAccessFirst<Payload extends Parsing.TaggedObject> {
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
<E = never, R = never, const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(polymorphicAccess: EMIDIAccess.PolymorphicAccessInstance<E, R>, id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>): MakeSpecificMessageStreamResult<Payload, TForbidNullsStrategy, E | MIDIErrors.PortNotFoundError, R>;
|
|
35
|
+
}
|
|
36
|
+
export interface MakeSpecificMessageStreamAccessLast<Payload extends Parsing.TaggedObject> {
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
<const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>): MakeSpecificMessageStreamAccessLastSecondPart<Payload, TForbidNullsStrategy>;
|
|
41
|
+
}
|
|
42
|
+
export interface MakeSpecificMessageStreamAccessLastSecondPart<Payload extends Parsing.TaggedObject, TForbidNullsStrategy extends ForbidNullsStrategy> {
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
<E = never, R = never>(polymorphicAccess: EMIDIAccess.PolymorphicAccessInstance<E, R>): MakeSpecificMessageStreamResult<Payload, TForbidNullsStrategy, E | MIDIErrors.PortNotFoundError, R>;
|
|
47
|
+
}
|
|
48
|
+
export interface MakeSpecificMessageStreamResult<Payload extends Parsing.TaggedObject, TForbidNullsStrategy extends ForbidNullsStrategy, E, R> extends Stream.Stream<Parsing.ParsedMIDIMessage<Payload>, StreamMaker.StreamError<TForbidNullsStrategy, E>, R> {
|
|
49
|
+
}
|
|
50
|
+
export declare const makeNoteReleaseStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.NoteReleasePayload>;
|
|
51
|
+
export declare const makeNoteReleaseStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.NoteReleasePayload>;
|
|
52
|
+
export declare const makeNoteReleaseStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.NoteReleasePayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
53
|
+
export declare const makeNotePressStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.NotePressPayload>;
|
|
54
|
+
export declare const makeNotePressStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.NotePressPayload>;
|
|
55
|
+
export declare const makeNotePressStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.NotePressPayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
56
|
+
export declare const makeUnknownReplyStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.UnknownReplyPayload>;
|
|
57
|
+
export declare const makeUnknownReplyStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.UnknownReplyPayload>;
|
|
58
|
+
export declare const makeUnknownReplyStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.UnknownReplyPayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
59
|
+
export declare const makeControlChangeStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.ControlChangePayload>;
|
|
60
|
+
export declare const makeControlChangeStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.ControlChangePayload>;
|
|
61
|
+
export declare const makeControlChangeStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.ControlChangePayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
62
|
+
export declare const makeChannelPressureStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.ChannelPressurePayload>;
|
|
63
|
+
export declare const makeChannelPressureStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.ChannelPressurePayload>;
|
|
64
|
+
export declare const makeChannelPressureStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.ChannelPressurePayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
65
|
+
export declare const makeTouchpadReleaseStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.TouchpadReleasePayload>;
|
|
66
|
+
export declare const makeTouchpadReleaseStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.TouchpadReleasePayload>;
|
|
67
|
+
export declare const makeTouchpadReleaseStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.TouchpadReleasePayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
68
|
+
export declare const makePitchBendChangeStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.PitchBendChangePayload>;
|
|
69
|
+
export declare const makePitchBendChangeStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.PitchBendChangePayload>;
|
|
70
|
+
export declare const makePitchBendChangeStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.PitchBendChangePayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
71
|
+
export declare const makeTouchpadPositionUpdateStreamByInput: DualMakeSpecificMessageStreamFromInput<Parsing.TouchpadPositionUpdatePayload>;
|
|
72
|
+
export declare const makeTouchpadPositionUpdateStreamByInputIdAndAccess: DualMakeSpecificMessageStreamFromAccess<Parsing.TouchpadPositionUpdatePayload>;
|
|
73
|
+
export declare const makeTouchpadPositionUpdateStreamByInputIdInContext: <const TForbidNullsStrategy extends ForbidNullsStrategy = undefined>(id: EMIDIInput.Id, options?: StreamMaker.StreamMakerOptions<TForbidNullsStrategy>) => MakeSpecificMessageStreamResult<Parsing.TouchpadPositionUpdatePayload, TForbidNullsStrategy, MIDIErrors.PortNotFoundError, EMIDIAccess.EMIDIAccess>;
|
|
74
|
+
//# sourceMappingURL=MIDIEventStreams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MIDIEventStreams.d.ts","sourceRoot":"","sources":["../../../src/internal/MIDIEventStreams.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type * as Scope from 'effect/Scope';
|
|
2
|
+
import type * as MIDIErrors from '../../MIDIErrors.ts';
|
|
3
|
+
import type { TouchPort } from '../makeMIDIPortMethodCallerFactory.ts';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
export declare const acquireReleasePortConnectionByPort: TouchPort<MIDIErrors.CannotOpenUnavailablePortError, Scope.Scope, MIDIPortType>;
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export declare const acquireReleaseInputConnectionByPort: TouchPort<MIDIErrors.CannotOpenUnavailablePortError, Scope.Scope, "input">;
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
export declare const acquireReleaseOutputConnectionByPort: TouchPort<MIDIErrors.CannotOpenUnavailablePortError, Scope.Scope, "output">;
|
|
16
|
+
//# sourceMappingURL=acquireReleasePortConnectionByPort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acquireReleasePortConnectionByPort.d.ts","sourceRoot":"","sources":["../../../../../src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPort.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAK1C,OAAO,KAAK,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAA;AAuBtE;;GAEG;AACH,eAAO,MAAM,kCAAkC,iFACD,CAAA;AAE9C;;GAEG;AACH,eAAO,MAAM,mCAAmC,4EACD,CAAA;AAE/C;;GAEG;AACH,eAAO,MAAM,oCAAoC,6EACD,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** biome-ignore-all lint/style/useShorthandFunctionType: It's a nice way to
|
|
2
|
+
* preserve JSDoc comments attached to the function signature */
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
export declare const acquireReleasePortConnectionByPortIdAndAccess: import("../../EMIDIAccess.ts").GetThingByPortId<import("../../EMIDIAccess.ts").EMIDIAccessInstance, "input" | "output", never, never, import("../../MIDIErrors.ts").CannotOpenUnavailablePortError | import("../../MIDIErrors.ts").PortNotFoundError, import("effect/Scope").Scope>;
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare const acquireReleaseInputConnectionByPortIdAndAccess: import("../../EMIDIAccess.ts").GetThingByPortId<import("../../EMIDIAccess.ts").EMIDIAccessInstance, "input", never, never, import("../../MIDIErrors.ts").CannotOpenUnavailablePortError | import("../../MIDIErrors.ts").PortNotFoundError, import("effect/Scope").Scope>;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
|
+
export declare const acquireReleaseOutputConnectionByPortIdAndAccess: import("../../EMIDIAccess.ts").GetThingByPortId<import("../../EMIDIAccess.ts").EMIDIAccessInstance, "output", never, never, import("../../MIDIErrors.ts").CannotOpenUnavailablePortError | import("../../MIDIErrors.ts").PortNotFoundError, import("effect/Scope").Scope>;
|
|
15
|
+
//# sourceMappingURL=acquireReleasePortConnectionByPortIdAndAccess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acquireReleasePortConnectionByPortIdAndAccess.d.ts","sourceRoot":"","sources":["../../../../../src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdAndAccess.ts"],"names":[],"mappings":"AACA;gEACgE;AAMhE;;GAEG;AACH,eAAO,MAAM,6CAA6C,qRAGzD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8CAA8C,0QAG1D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,+CAA+C,2QAG3D,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
*/
|
|
4
|
+
export declare const acquireReleasePortConnectionByPortIdInContext: (id: import("../../EMIDIPort.ts").BothId) => import("effect/Effect").Effect<import("../../EMIDIPort.ts").EMIDIPort<"input" | "output">, import("../../MIDIErrors.ts").CannotOpenUnavailablePortError | import("../../MIDIErrors.ts").PortNotFoundError, import("../../EMIDIAccess.ts").EMIDIAccess | import("effect/Scope").Scope>;
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export declare const acquireReleaseInputConnectionByPortIdInContext: (id: string & import("effect/Brand").Brand<"MIDIPortId"> & import("effect/Brand").Brand<"input">) => import("effect/Effect").Effect<import("../../EMIDIPort.ts").EMIDIPort<"input">, import("../../MIDIErrors.ts").CannotOpenUnavailablePortError | import("../../MIDIErrors.ts").PortNotFoundError, import("../../EMIDIAccess.ts").EMIDIAccess | import("effect/Scope").Scope>;
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export declare const acquireReleaseOutputConnectionByPortIdInContext: (id: string & import("effect/Brand").Brand<"MIDIPortId"> & import("effect/Brand").Brand<"output">) => import("effect/Effect").Effect<import("../../EMIDIPort.ts").EMIDIPort<"output">, import("../../MIDIErrors.ts").CannotOpenUnavailablePortError | import("../../MIDIErrors.ts").PortNotFoundError, import("../../EMIDIAccess.ts").EMIDIAccess | import("effect/Scope").Scope>;
|
|
13
|
+
//# sourceMappingURL=acquireReleasePortConnectionByPortIdInContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acquireReleasePortConnectionByPortIdInContext.d.ts","sourceRoot":"","sources":["../../../../../src/internal/MIDIPortMethodCalls/acquireReleasePortConnection/acquireReleasePortConnectionByPortIdInContext.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,6CAA6C,oUAGzD,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8CAA8C,iXAG1D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,+CAA+C,mXAG3D,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** biome-ignore-all lint/style/useShorthandFunctionType: It's a nice way to
|
|
2
|
+
* preserve JSDoc comments attached to the function signature */
|
|
3
|
+
import * as EMIDIAccess from '../EMIDIAccess.ts';
|
|
4
|
+
import type * as Get from '../getPortByPortId/getPortByPortIdAndAccess.ts';
|
|
5
|
+
import type * as Make from './makeMIDIPortMethodCallerFactory.ts';
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const actOnPort: <TTypeOfPortId extends MIDIPortType, TPortTypeReturnedFromAccess extends TPortTypeSupportedInActing & TTypeOfPortId, TPortTypeSupportedInActing extends MIDIPortType, TPortGettingError = never, TPortGettingRequirement = never, TPortActingError = never, TPortActingRequirement = never>(getPortFromAccessAndPortId: Get.GetPortById<TPortTypeReturnedFromAccess, TTypeOfPortId, never, never, TPortGettingError, TPortGettingRequirement>, act: Make.TouchPort<TPortActingError, TPortActingRequirement, TPortTypeSupportedInActing>) => EMIDIAccess.GetThingByPortId<EMIDIAccess.EMIDIAccessInstance, TPortTypeReturnedFromAccess, never, never, TPortGettingError | TPortActingError, TPortGettingRequirement | TPortActingRequirement>;
|
|
11
|
+
//# sourceMappingURL=actOnPort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actOnPort.d.ts","sourceRoot":"","sources":["../../../../src/internal/MIDIPortMethodCalls/actOnPort.ts"],"names":[],"mappings":"AAAA;gEACgE;AAKhE,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,KAAK,GAAG,MAAM,gDAAgD,CAAA;AAC1E,OAAO,KAAK,KAAK,IAAI,MAAM,sCAAsC,CAAA;AAEjE;;;GAGG;AACH,eAAO,MAAM,SAAS,GACpB,aAAa,SAAS,YAAY,EAClC,2BAA2B,SAAS,0BAA0B,GAC5D,aAAa,EACf,0BAA0B,SAAS,YAAY,EAC/C,iBAAiB,GAAG,KAAK,EACzB,uBAAuB,GAAG,KAAK,EAC/B,gBAAgB,GAAG,KAAK,EACxB,sBAAsB,GAAG,KAAK,8BAEF,GAAG,CAAC,WAAW,CACzC,2BAA2B,EAC3B,aAAa,EACb,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,uBAAuB,CACxB,OACI,IAAI,CAAC,SAAS,CACjB,gBAAgB,EAChB,sBAAsB,EACtB,0BAA0B,CAC3B,KACA,WAAW,CAAC,gBAAgB,CAC7B,WAAW,CAAC,mBAAmB,EAC/B,2BAA2B,EAC3B,KAAK,EACL,KAAK,EACL,iBAAiB,GAAG,gBAAgB,EACpC,uBAAuB,GAAG,sBAAsB,CAqB/C,CAAA"}
|