@ng-web-apis/midi
Version:
An Observable based library for the use of Web MIDI API with Angular
18 lines • 2.67 kB
JavaScript
import { inject, InjectionToken } from '@angular/core';
import { WA_NAVIGATOR } from '@ng-web-apis/common';
import { SYSEX } from './sysex';
export const WA_MIDI_ACCESS = new InjectionToken('[WA_MIDI_ACCESS]', {
providedIn: 'root',
factory: async () => {
const navigatorRef = inject(WA_NAVIGATOR);
const sysex = inject(SYSEX);
return navigatorRef.requestMIDIAccess
? navigatorRef.requestMIDIAccess({ sysex })
: Promise.reject(new Error('Web MIDI API is not supported'));
},
});
/**
* @deprecated: drop in v5.0, use {@link WA_MIDI_ACCESS}
*/
export const MIDI_ACCESS = WA_MIDI_ACCESS;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkaS1hY2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL21pZGkvc3JjL3Rva2Vucy9taWRpLWFjY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUU5QixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQzVDLGtCQUFrQixFQUNsQjtJQUNJLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxLQUFLLElBQUksRUFBRTtRQUNoQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVCLE9BQU8sWUFBWSxDQUFDLGlCQUFpQjtZQUNqQyxDQUFDLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7Q0FDSixDQUNKLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXQV9OQVZJR0FUT1J9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuXG5pbXBvcnQge1NZU0VYfSBmcm9tICcuL3N5c2V4JztcblxuZXhwb3J0IGNvbnN0IFdBX01JRElfQUNDRVNTID0gbmV3IEluamVjdGlvblRva2VuPFByb21pc2U8Z2xvYmFsVGhpcy5NSURJQWNjZXNzPj4oXG4gICAgJ1tXQV9NSURJX0FDQ0VTU10nLFxuICAgIHtcbiAgICAgICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgICAgICBmYWN0b3J5OiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYXZpZ2F0b3JSZWYgPSBpbmplY3QoV0FfTkFWSUdBVE9SKTtcbiAgICAgICAgICAgIGNvbnN0IHN5c2V4ID0gaW5qZWN0KFNZU0VYKTtcblxuICAgICAgICAgICAgcmV0dXJuIG5hdmlnYXRvclJlZi5yZXF1ZXN0TUlESUFjY2Vzc1xuICAgICAgICAgICAgICAgID8gbmF2aWdhdG9yUmVmLnJlcXVlc3RNSURJQWNjZXNzKHtzeXNleH0pXG4gICAgICAgICAgICAgICAgOiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoJ1dlYiBNSURJIEFQSSBpcyBub3Qgc3VwcG9ydGVkJykpO1xuICAgICAgICB9LFxuICAgIH0sXG4pO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkOiBkcm9wIGluIHY1LjAsIHVzZSB7QGxpbmsgV0FfTUlESV9BQ0NFU1N9XG4gKi9cbmV4cG9ydCBjb25zdCBNSURJX0FDQ0VTUyA9IFdBX01JRElfQUNDRVNTO1xuIl19