feat: enhance waveform editor with playback controls and segment interaction

- Added onPlayFromCursor and playbackCursorMs props to WaveformEditorCanvas for playback control.
- Implemented visual feedback for segment selection and hover states, including color adjustments and labels.
- Introduced smooth cursor animation for better user experience during interaction.
- Enhanced segment metadata handling in types and IPC for better integration with the library.
- Added focusOnFile method in LibraryStore to manage file selection and refresh.
- Updated styles for edit mode, including new classes for waveform and playback controls.
- Introduced new IPC channel for splitting audio files and updated related interfaces.
- Added parentFileId to AudioFileSummary for tracking source files.
- Implemented tests for tagging service to ensure metadata integrity and tag preservation.
- Created scrubWorklet and assets type definitions for future audio processing features.
This commit is contained in:
2025-11-11 08:19:19 +11:00
parent 781187c427
commit 6515a30a0e
20 changed files with 1871 additions and 288 deletions

View File

@@ -26,6 +26,8 @@ export interface AudioFileSummary {
bitDepth: number | null;
/** Content checksum used for duplicate detection. */
checksum: string | null;
/** Identifier of the source file this entry originated from, if any. */
parentFileId: number | null;
/** Applied descriptive tags. */
tags: string[];
/** Associated UCS categories. */
@@ -90,8 +92,8 @@ export interface AppSettings {
export interface TagUpdatePayload {
/** Target audio file id. */
fileId: number;
/** Free-form tag collection. */
tags: string[];
/** Optional free-form tag collection. When omitted, existing tags are preserved. */
tags?: string[];
/** UCS category identifiers to attach. */
categories: string[];
}