summaryrefslogtreecommitdiff
path: root/apps/web/src/lib/timeline
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/lib/timeline')
-rw-r--r--apps/web/src/lib/timeline/audio-state.ts14
-rw-r--r--apps/web/src/lib/timeline/element-utils.ts8
2 files changed, 21 insertions, 1 deletions
diff --git a/apps/web/src/lib/timeline/audio-state.ts b/apps/web/src/lib/timeline/audio-state.ts
index 9625c482..165ece94 100644
--- a/apps/web/src/lib/timeline/audio-state.ts
+++ b/apps/web/src/lib/timeline/audio-state.ts
@@ -57,6 +57,20 @@ export function resolveEffectiveAudioGain({
return dBToLinear(resolvedDb);
}
+export function buildWaveformGainSamples({
+ element,
+ count,
+}: {
+ element: AudioCapableElement;
+ count: number;
+}): number[] {
+ const durationSeconds = element.duration / TICKS_PER_SECOND;
+ return Array.from({ length: count }, (_, i) => {
+ const localTime = ((i + 0.5) / count) * durationSeconds;
+ return resolveEffectiveAudioGain({ element, localTime });
+ });
+}
+
export function buildAudioGainAutomation({
element,
trackMuted = false,
diff --git a/apps/web/src/lib/timeline/element-utils.ts b/apps/web/src/lib/timeline/element-utils.ts
index e56acd3c..e7ec4065 100644
--- a/apps/web/src/lib/timeline/element-utils.ts
+++ b/apps/web/src/lib/timeline/element-utils.ts
@@ -15,7 +15,6 @@ import {
type TextElement,
type SceneTracks,
type TimelineElement,
- type TimelineTrack,
type AudioElement,
type VideoElement,
type ImageElement,
@@ -414,6 +413,13 @@ export function getElementFontFamilies({
if (element.type === "text" && element.fontFamily) {
families.add(element.fontFamily);
}
+ if ("masks" in element) {
+ for (const mask of element.masks ?? []) {
+ if (mask.type === "text" && mask.params.fontFamily) {
+ families.add(mask.params.fontFamily);
+ }
+ }
+ }
}
}
return [...families];