From 91d38a1b3f2311315211cc22ca80578db2c31313 Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Sat, 20 Dec 2025 18:49:54 -0500 Subject: [PATCH] Add DVD authoring placeholder and adjust snippet defaults --- DONE.md | 1 + TODO.md | 7 +++++++ internal/modules/handlers.go | 6 ++++++ main.go | 7 ++----- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/DONE.md b/DONE.md index 8f8e71a..c1e2bb5 100644 --- a/DONE.md +++ b/DONE.md @@ -833,6 +833,7 @@ This file tracks completed features, fixes, and milestones. - ✅ Hide quality presets when bitrate mode is not CRF - ✅ Snippet UI now shows Convert Snippet + batch + options with context-sensitive controls - ✅ Reduced module video pane minimum sizes to allow GNOME window snapping +- ✅ Snippet defaults now use conversion settings (not Match Source) - ✅ Stabilized video seeking and embedded rendering - ✅ Improved player window positioning - ✅ Fixed clear video functionality diff --git a/TODO.md b/TODO.md index 9dd360d..208d376 100644 --- a/TODO.md +++ b/TODO.md @@ -109,6 +109,13 @@ This file tracks upcoming features, improvements, and known issues. - Creative effects (grayscale, vignette) - Real-time preview system +- [ ] **DVD Authoring module** + - Output VIDEO_TS folder + burn-ready ISO + - Auto-detect NTSC/PAL with manual override + - Preserve all audio tracks + - Subtitle support (start with SRT) + - Chapter sources: existing, manual markers, auto scene length + ### Quality & Compression Improvements - [x] **Automatic black bar detection and cropping** (v0.1.0-dev13 - COMPLETED) - Implement ffmpeg cropdetect analysis pass diff --git a/internal/modules/handlers.go b/internal/modules/handlers.go index 83ce524..b76ae89 100644 --- a/internal/modules/handlers.go +++ b/internal/modules/handlers.go @@ -44,6 +44,12 @@ func HandleAudio(files []string) { fmt.Println("audio", files) } +// HandleDVDAuthor handles the DVD authoring module (placeholder) +func HandleDVDAuthor(files []string) { + logging.Debug(logging.CatModule, "dvd author handler invoked with %v", files) + fmt.Println("dvd author", files) +} + // HandleSubtitles handles the subtitles module (placeholder) func HandleSubtitles(files []string) { logging.Debug(logging.CatModule, "subtitles handler invoked with %v", files) diff --git a/main.go b/main.go index 7760960..4ba3b8e 100644 --- a/main.go +++ b/main.go @@ -88,6 +88,7 @@ var ( {"filters", "Filters", utils.MustHex("#44FF88"), "Convert", modules.HandleFilters}, // Green {"upscale", "Upscale", utils.MustHex("#AAFF44"), "Advanced", modules.HandleUpscale}, // Yellow-Green {"audio", "Audio", utils.MustHex("#FFD744"), "Convert", modules.HandleAudio}, // Yellow + {"dvd-author", "DVD Author", utils.MustHex("#FFAA44"), "Convert", modules.HandleDVDAuthor}, // Orange {"subtitles", "Subtitles", utils.MustHex("#44A6FF"), "Convert", modules.HandleSubtitles}, // Azure {"thumb", "Thumb", utils.MustHex("#FF8844"), "Screenshots", modules.HandleThumb}, // Orange {"compare", "Compare", utils.MustHex("#FF44AA"), "Inspect", modules.HandleCompare}, // Pink @@ -1410,7 +1411,7 @@ func (s *appState) showMainMenu() { Label: m.Label, Color: m.Color, Category: m.Category, - Enabled: m.ID == "convert" || m.ID == "compare" || m.ID == "inspect" || m.ID == "merge" || m.ID == "thumb" || m.ID == "player" || m.ID == "filters" || m.ID == "upscale", // Enabled modules (subtitles placeholder stays disabled) + Enabled: m.ID == "convert" || m.ID == "compare" || m.ID == "inspect" || m.ID == "merge" || m.ID == "thumb" || m.ID == "player" || m.ID == "filters" || m.ID == "upscale", // Enabled modules (authoring/subtitles placeholders stay disabled) }) } @@ -7064,10 +7065,6 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject { if state.snippetLength == 0 { state.snippetLength = 20 // Default to 20 seconds } - // Default to source format if not set - if !state.snippetSourceFormat { - state.snippetSourceFormat = true - } // Snippet length configuration snippetLengthLabel := widget.NewLabel(fmt.Sprintf("Snippet Length: %d seconds", state.snippetLength))