Rob Watson
e434ad9a84
Remove fast-forward and rewind buttons
2022-05-18 18:16:51 +02:00
Rob Watson
e40e794721
Improve SeekBar interface
continuous-integration/drone/push Build was killed
Details
continuous-integration/drone Build was killed
Details
2022-02-16 20:43:39 +01:00
Rob Watson
691099da3a
Update backend dependencies
continuous-integration/drone/push Build is passing
Details
2022-02-10 20:00:53 +01:00
Rob Watson
7eb53417ac
Update frontend dependencies
2022-02-10 20:00:49 +01:00
Rob Watson
26b51b8c93
Combine Player and VideoPreview components.
...
This makes sense semantically and also simplifies the component
structure as it avoids leaking the Video reference outside of the
component (at least for now).
2022-02-10 20:00:45 +01:00
Rob Watson
f2d7d1f5bb
Bug fix: load waveform peaks after fetching audio from Youtube
continuous-integration/drone/push Build is passing
Details
2022-02-07 20:17:23 +01:00
Rob Watson
669afcf6d9
Add test coverage for positionchanged event
continuous-integration/drone/push Build is failing
Details
2022-02-07 19:29:17 +01:00
Rob Watson
29129afe90
Add test coverage for waveformselectionchanged event
continuous-integration/drone/push Build is passing
Details
2022-02-07 07:55:47 +01:00
Rob Watson
a0bb48fb69
Add basic test coverage for viewport handling
continuous-integration/drone/push Build is passing
Details
2022-02-05 09:16:31 +01:00
Rob Watson
a8ba36a0e1
GetAudio: avoid leaking goroutine on cancellation
continuous-integration/drone/push Build is passing
Details
2022-02-05 07:46:52 +01:00
Rob Watson
54e9bc0d2c
Pass context from gRPC streams to background tasks
2022-02-05 07:44:44 +01:00
Rob Watson
6dde29cdcf
GetPeaksForSegment: add extra invalid arg check
2022-02-04 16:22:06 +01:00
Rob Watson
a9ea462b41
Rename CanvasLogicalWidth to CanvasWidth
continuous-integration/drone/push Build is passing
Details
2022-02-04 08:37:39 +01:00
Rob Watson
3dcc1edc62
Replace Selection interface with CanvasRange
continuous-integration/drone/push Build is passing
Details
2022-02-04 08:35:54 +01:00
Rob Watson
b64f0b4daa
Start to add test coverage to AppState
continuous-integration/drone/push Build is passing
Details
2022-02-04 08:10:33 +01:00
Rob Watson
9f76d2764f
Refactor top-level state management => useReducer
continuous-integration/drone/push Build is passing
Details
2022-02-03 19:56:05 +01:00
Rob Watson
a855d589f3
Refactor HudCanvasState tests
2022-02-03 19:44:28 +01:00
Rob Watson
6ba19b3e01
Bug fix: prevent incorrect selectionChange callbacks
...
continuous-integration/drone/push Build is passing
Details
When re-rendering the HudCanvas component, the selectionChange callback
should not be triggered with the passed-in properties. Doing so leads to
incorrect selection values being bubbled up when the selection is not
enclosed in the viewport.
The state management should probably be improved to avoid this dance
completely, possibly by hoisting all of this state up to the top-level.
2022-01-29 12:32:39 +01:00
Rob Watson
bff15098e6
Enable grpc-web CORS origin checking
continuous-integration/drone/push Build is passing
Details
2022-01-27 20:40:33 +01:00
Rob Watson
cf90100c5f
Add CORS headers to HTTP handlers
continuous-integration/drone/push Build is passing
Details
2022-01-26 19:27:57 +01:00
Rob Watson
698b97e904
Update backend dependencies
continuous-integration/drone/push Build is passing
Details
2022-01-26 07:32:34 +01:00
Rob Watson
404c11909b
Bug fix: update waveform after fetching audio from Youtube
continuous-integration/drone/push Build is passing
Details
2022-01-25 22:47:26 +01:00
Rob Watson
5a1ebb7c3a
Send AudioFrames in gRPC message when available
continuous-integration/drone/push Build is passing
Details
2022-01-25 20:06:19 +01:00
Rob Watson
48c84a7efa
Bug fix: avoid NaN in helper
2022-01-25 20:06:15 +01:00
Rob Watson
5af8f0c319
HudCanvas: extract HudCanvasState
continuous-integration/drone/push Build is passing
Details
2022-01-24 20:33:16 +01:00
Rob Watson
4f443af8fa
HudCanvas: draw hover position
continuous-integration/drone/push Build is passing
Details
2022-01-18 18:23:00 +01:00
Rob Watson
9ae4335b19
Disable buttons when zooming is not possible
2022-01-18 18:23:00 +01:00
Rob Watson
a4e9ebca3b
Update duration display on selection change
2022-01-18 18:23:00 +01:00
Rob Watson
f386e12f72
Add option to trigger "selection changed" callback in realtime
2022-01-18 18:23:00 +01:00
Rob Watson
bb3366ac9a
Rename method, fix useEffect dependencies
2022-01-18 18:23:00 +01:00
Rob Watson
41fe0ce2b1
Centre zoom in/out on selection if availble
2022-01-18 18:23:00 +01:00
Rob Watson
aa80c9eb7e
Bug fix: avoid space bar conflict with player interface
2022-01-18 18:23:00 +01:00
Rob Watson
9d90ed51e6
Bug fix: ensure playback ends at selection end
2022-01-18 18:23:00 +01:00
Rob Watson
a33057651d
Update frontend with Tailwind.
...
- Replace inline CSS with Tailwind classes
- Improve page layout and scaling
- Add icons to ControlBar
- Small refactor of play/pause logic
- Add basic (not by any means final) colours
2022-01-18 18:23:00 +01:00
Rob Watson
ec3ac8996d
Add tailwindcss
2022-01-18 18:23:00 +01:00
Rob Watson
d988a99f78
Update react-scripts -> 5.x
2022-01-18 18:23:00 +01:00
Rob Watson
58bbc06e6f
Update deployment configuration to enable prefixes
continuous-integration/drone/push Build is passing
Details
2022-01-18 17:56:37 +01:00
Rob Watson
fbbb2e2fda
config: Add prefix support and test coverage
continuous-integration/drone/push Build is passing
Details
2022-01-18 08:23:16 +01:00
Rob Watson
d136e00c59
Refactor zoom in/out, add test coverage
continuous-integration/drone/push Build is passing
Details
2022-01-16 08:58:07 +01:00
Rob Watson
aa4d235c0c
frontend: reduce redraw rate to 20ms
continuous-integration/drone/push Build is passing
Details
2022-01-15 10:14:04 +01:00
Rob Watson
d8173cdace
Add framesToDuration helper
2022-01-15 10:13:57 +01:00
Rob Watson
ed964cb58f
Add toHHMMSS helper
2022-01-15 10:13:52 +01:00
Rob Watson
f33fa149fc
Remove most useCallback usages
...
It is unclear whether these are actually significantly improving
performance and they add non-trivial complexity to the codebase,
especially when under heavy frontend development. Removing most of them
for now until it can be shown they are actually worthwhile.
2022-01-14 12:24:59 +01:00
Rob Watson
35b62f1e59
Fetch title, description and author from Youtube
continuous-integration/drone/push Build is passing
Details
2022-01-13 20:05:09 +01:00
Rob Watson
aabd0f3252
HudCanvas: add useCallbacks
continuous-integration/drone/push Build is passing
Details
2022-01-13 07:59:48 +01:00
Rob Watson
5e27c3db9a
Fix filename typo
continuous-integration/drone/push Build is passing
Details
2022-01-10 21:51:17 +01:00
Rob Watson
b0ccf17527
poc: legacy HTTP download for audio clips
continuous-integration/drone/push Build is passing
Details
2022-01-10 21:35:31 +01:00
Rob Watson
af0674eb11
Add POST /api/media_sets/:id/clip.
...
continuous-integration/drone Build is passing
Details
This will allow for an HTTP/1.1 fallback for
MediaSetService.GetAudioSegment, enabling download of audio clips in
browsers that do not support the File System Access API.
2022-01-10 18:52:04 +01:00
Rob Watson
c7d5541379
Refactor response handling.
...
- Add FileSystem implementation to handle HTTP index files but constrain
directory listings
- Refactor server implementation into a dedicated handler struct
- Add test coverage
2022-01-10 18:45:10 +01:00
Rob Watson
8a26b75127
Revert "Disable directory listings in http.FileServer."
...
continuous-integration/drone/push Build is passing
Details
The middleware approach breaks automatic handling of index files, which
in turn breaks assets serving. A custom file system will be required
instead.
This reverts commit 2377477188
.
2022-01-10 08:39:03 +01:00