Skip to content

Commit 893780c

Browse files
authored
Merge pull request #21 from mbsantiago/fix/double-clicking
Fixed issue when using double click on the spectrogram for seeking
2 parents 97de568 + 4deb193 commit 893780c

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,4 @@ whombat.db
174174
back/src/whombat/statics/*
175175
back/src/whombat/user_guide/*
176176
back/.build_venv
177+
front/tests-examples

front/src/components/recordings/RecordingSpectrogram.tsx

+11-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import useCanvas from "@/hooks/draw/useCanvas";
1111
import useSpectrogram from "@/hooks/spectrogram/useSpectrogram";
1212
import useSpectrogramTrackAudio from "@/hooks/spectrogram/useSpectrogramTrackAudio";
1313

14-
import type { Recording, SpectrogramParameters } from "@/types";
14+
import type { Recording, SpectrogramParameters, Position } from "@/types";
1515

1616
export default function RecordingSpectrogram({
1717
recording,
@@ -62,12 +62,22 @@ export default function RecordingSpectrogram({
6262
startTime: bounds.time.min,
6363
});
6464

65+
const { seek, play } = audio;
66+
const handleDoubleClick = useCallback(
67+
({ position }: { position: Position }) => {
68+
seek(position.time);
69+
play();
70+
},
71+
[seek, play],
72+
);
73+
6574
const spectrogram = useSpectrogram({
6675
dimensions,
6776
recording,
6877
bounds,
6978
initial,
7079
parameters,
80+
onDoubleClick: handleDoubleClick,
7181
enabled: !audio.isPlaying,
7282
});
7383

front/src/hooks/audio/useAudio.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ export default function useAudio({
198198
}, []);
199199

200200
const handleSeek = useCallback((time: number) => {
201-
audio.current.currentTime = time / speed;
202-
}, [speed]);
201+
audio.current.currentTime = (time - startTime) / speed;
202+
}, [speed, startTime]);
203203

204204
const handleTogglePlay = useCallback(() => {
205205
if (isPlaying) {

0 commit comments

Comments
 (0)