UNPKG

@ekx/auph

Version:

[![Build](https://github.com/eliasku/auph/actions/workflows/build.yml/badge.svg)](https://github.com/eliasku/auph/actions/workflows/build.yml) [![Version](https://img.shields.io/npm/v/auph)](https://www.npmjs.com/package/auph) [![Downloads](https://img.sh

57 lines 1.75 kB
import { getAudioContextObject } from "./Mixer"; import { iMask, Unit } from "../protocol/interface"; import { add, connectAudioNode, disconnectAudioNode, len, resize } from "./common"; var BusObj = /** @class */ (function () { function BusObj(g) { this.g = g; this.h = 0; this.s = 1 /* Active */ | 2 /* Running */; this.G = Unit; } return BusObj; }()); export { BusObj }; export var busLine = []; export function createBusObj(ctx) { var next = len(busLine); var obj = new BusObj(ctx.createGain()); obj.h = next | 268435456 /* Bus */; add(busLine, obj); return obj; } export function initBusPool(ctx) { var master = createBusObj(ctx).g; connectAudioNode(master, ctx.destination); connectAudioNode(createBusObj(ctx).g, master); connectAudioNode(createBusObj(ctx).g, master); connectAudioNode(createBusObj(ctx).g, master); } export function termBusPool() { for (var i = 0; i < len(busLine); ++i) { disconnectAudioNode(busLine[i].g); } resize(busLine, 0); } export function _getBus(bus) { var obj = busLine[bus & iMask]; return (obj && obj.h === bus) ? obj : null; } export function _getBusGain(handle) { var obj = _getBus(handle); return obj ? obj.g : undefined; } export function _setBusConnected(bus, connected) { var flag = !!(bus.s & 2 /* Running */); if (flag !== connected) { var master = busLine[0]; var dest = bus === master ? getAudioContextObject().destination : master.g; if (connected) { connectAudioNode(bus.g, dest); } else { disconnectAudioNode(bus.g, dest); } bus.s ^= 2 /* Running */; } } //# sourceMappingURL=Bus.js.map