summaryrefslogtreecommitdiff
path: root/apps/web/src/components/editor/speed-control.tsx
diff options
context:
space:
mode:
authoraashishparuvada <aashishvardhanp@gmail.com>2025-06-23 21:17:25 +0530
committeraashishparuvada <aashishvardhanp@gmail.com>2025-06-23 21:17:25 +0530
commitb9f4aebfd38c394dba18c0a8b32a0175b2b38b97 (patch)
treefaa28d3edd912954cc6f672de5928b48ce6f7bbb /apps/web/src/components/editor/speed-control.tsx
parentf44f0acf7024febdbbecbbf10772b9b9d3863b4f (diff)
parent4c8a37c63555b9ea608628a5895f9918fd698871 (diff)
downloadopencut-b9f4aebfd38c394dba18c0a8b32a0175b2b38b97.tar.gz
Merge branch 'main' of https://github.com/aashishparuvada/OpenCut
merged main
Diffstat (limited to 'apps/web/src/components/editor/speed-control.tsx')
-rw-r--r--apps/web/src/components/editor/speed-control.tsx46
1 files changed, 46 insertions, 0 deletions
diff --git a/apps/web/src/components/editor/speed-control.tsx b/apps/web/src/components/editor/speed-control.tsx
new file mode 100644
index 00000000..39281a9a
--- /dev/null
+++ b/apps/web/src/components/editor/speed-control.tsx
@@ -0,0 +1,46 @@
+import { Slider } from "../ui/slider";
+import { Label } from "../ui/label";
+import { Button } from "../ui/button";
+import { usePlaybackStore } from "@/stores/playback-store";
+
+const SPEED_PRESETS = [
+ { label: "0.5x", value: 0.5 },
+ { label: "1x", value: 1.0 },
+ { label: "1.5x", value: 1.5 },
+ { label: "2x", value: 2.0 },
+];
+
+export function SpeedControl() {
+ const { speed, setSpeed } = usePlaybackStore();
+
+ return (
+ <div className="space-y-4">
+ <h3 className="text-sm font-medium">Playback Speed</h3>
+ <div className="space-y-4">
+ <div className="flex gap-2">
+ {SPEED_PRESETS.map((preset) => (
+ <Button
+ key={preset.value}
+ variant={speed === preset.value ? "default" : "outline"}
+ className="flex-1"
+ onClick={() => setSpeed(preset.value)}
+ >
+ {preset.label}
+ </Button>
+ ))}
+ </div>
+ <div className="space-y-1">
+ <Label>Custom ({speed.toFixed(1)}x)</Label>
+ <Slider
+ value={[speed]}
+ min={0.1}
+ max={2.0}
+ step={0.1}
+ onValueChange={(value) => setSpeed(value[0])}
+ className="mt-2"
+ />
+ </div>
+ </div>
+ </div>
+ );
+} \ No newline at end of file