UNPKG

@omnimedia/omnitool

Version:

open source video processing tools

48 lines 1.25 kB
import { MapG } from "@e280/stz"; import { Effect, Kind } from "../parts/item.js"; export class O { #nextId = 0; #items = new MapG(); #getId() { return this.#nextId++; } register(item) { if (!this.#items.has(item.id)) this.#items.set(item.id, item); return item.id; } get items() { return [...this.#items.values()]; } sequence = (...items) => ({ id: this.#getId(), kind: Kind.Sequence, children: items.map(item => this.register(item)), }); stack = (...items) => ({ id: this.#getId(), kind: Kind.Stack, children: items.map(item => this.register(item)), }); clip = (media, start, duration) => ({ id: this.#getId(), kind: Kind.Clip, mediaHash: media.datafile.checksum.hash, start: start ?? 0, duration: duration ?? media.duration, }); text = (content) => ({ id: this.#getId(), kind: Kind.Text, content, }); transition = { crossfade: (duration) => ({ id: this.#getId(), kind: Kind.Transition, effect: Effect.Crossfade, duration, }), }; } //# sourceMappingURL=o.js.map