@ekx/auph
Version:
[](https://github.com/eliasku/auph/actions/workflows/build.yml) [](https://www.npmjs.com/package/auph) [ {
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