diff options
| author | aashishparuvada <aashishvardhanp@gmail.com> | 2025-06-23 21:17:25 +0530 |
|---|---|---|
| committer | aashishparuvada <aashishvardhanp@gmail.com> | 2025-06-23 21:17:25 +0530 |
| commit | b9f4aebfd38c394dba18c0a8b32a0175b2b38b97 (patch) | |
| tree | faa28d3edd912954cc6f672de5928b48ce6f7bbb /apps/web/src/components/editor/speed-control.tsx | |
| parent | f44f0acf7024febdbbecbbf10772b9b9d3863b4f (diff) | |
| parent | 4c8a37c63555b9ea608628a5895f9918fd698871 (diff) | |
| download | opencut-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.tsx | 46 |
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 |
