summaryrefslogtreecommitdiff
path: root/apps/web/src/core/managers/project-manager.ts
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web/src/core/managers/project-manager.ts')
-rw-r--r--apps/web/src/core/managers/project-manager.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/apps/web/src/core/managers/project-manager.ts b/apps/web/src/core/managers/project-manager.ts
index f84a25e3..916ab328 100644
--- a/apps/web/src/core/managers/project-manager.ts
+++ b/apps/web/src/core/managers/project-manager.ts
@@ -29,6 +29,8 @@ import {
import { loadFonts } from "@/lib/fonts/google-fonts";
import { DEFAULTS } from "@/lib/timeline/defaults";
import { getElementFontFamilies } from "@/lib/timeline/element-utils";
+import { getRaisedProjectFpsForImportedMedia } from "@/lib/project/fps";
+import type { MediaAsset } from "@/lib/media/types";
export interface MigrationState {
isMigrating: boolean;
@@ -492,6 +494,23 @@ export class ProjectManager {
command.execute();
}
+ ratchetFpsForImportedMedia({
+ importedAssets,
+ }: {
+ importedAssets: Array<Pick<MediaAsset, "type" | "fps">>;
+ }): number | null {
+ if (!this.active) return null;
+
+ const nextFps = getRaisedProjectFpsForImportedMedia({
+ currentFps: this.active.settings.fps,
+ importedAssets,
+ });
+ if (nextFps === null) return null;
+
+ new UpdateProjectSettingsCommand({ fps: nextFps }).execute();
+ return nextFps;
+ }
+
async updateThumbnail({ thumbnail }: { thumbnail: string }): Promise<void> {
if (!this.active) return;