Renamed "DVD Author" to "Author" for broader disc production workflow. Created foundation for complete authoring pipeline with three main tasks: **Module Structure:** - Tabbed interface with Chapters, Rip DVD/ISO, and Author Disc tabs - Added authorChapter struct (timestamp, title, auto-detected flag) - Added author module state fields (file, chapters, threshold, detecting) **Chapters Tab (Basic UI):** - File selection with video probing integration - Scene detection sensitivity slider (0.1-0.9 threshold) - Placeholder UI for chapter list and controls - Add Chapter and Export Chapters buttons (placeholders) - Foundation for FFmpeg scdet scene detection **Rip DVD/ISO Tab:** - Placeholder for high-quality disc extraction - Will support lossless ripping (like FLAC from CD) - Preserve all audio/subtitle tracks **Author Disc Tab:** - Placeholder for VIDEO_TS/ISO creation - Will support burn-ready output, NTSC/PAL, menus Changes: - Modified main.go: Added authorChapter struct, author state fields, showAuthorView(), buildAuthorView(), buildChaptersTab(), buildRipTab(), buildAuthorDiscTab() - Modified internal/modules/handlers.go: Renamed HandleDVDAuthor to HandleAuthor with updated comment - Updated DONE.md with Author module skeleton details Next steps: Implement FFmpeg scene detection, chapter list UI, and DVD/ISO ripping functionality. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
82 lines
2.4 KiB
Go
82 lines
2.4 KiB
Go
package modules
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.leaktechnologies.dev/stu/VideoTools/internal/logging"
|
|
)
|
|
|
|
// Module handlers - each handles the logic for a specific module
|
|
|
|
// HandleConvert handles the convert module
|
|
func HandleConvert(files []string) {
|
|
logging.Debug(logging.CatFFMPEG, "convert handler invoked with %v", files)
|
|
fmt.Println("convert", files)
|
|
}
|
|
|
|
// HandleMerge handles the merge module
|
|
func HandleMerge(files []string) {
|
|
logging.Debug(logging.CatFFMPEG, "merge handler invoked with %v", files)
|
|
fmt.Println("merge", files)
|
|
}
|
|
|
|
// HandleTrim handles the trim module
|
|
func HandleTrim(files []string) {
|
|
logging.Debug(logging.CatModule, "trim handler invoked with %v", files)
|
|
fmt.Println("trim", files)
|
|
}
|
|
|
|
// HandleFilters handles the filters module
|
|
func HandleFilters(files []string) {
|
|
logging.Debug(logging.CatModule, "filters handler invoked with %v", files)
|
|
fmt.Println("filters", files)
|
|
}
|
|
|
|
// HandleUpscale handles the upscale module
|
|
func HandleUpscale(files []string) {
|
|
logging.Debug(logging.CatModule, "upscale handler invoked with %v", files)
|
|
fmt.Println("upscale", files)
|
|
}
|
|
|
|
// HandleAudio handles the audio module
|
|
func HandleAudio(files []string) {
|
|
logging.Debug(logging.CatModule, "audio handler invoked with %v", files)
|
|
fmt.Println("audio", files)
|
|
}
|
|
|
|
// HandleAuthor handles the disc authoring module (DVD/Blu-ray) (placeholder)
|
|
func HandleAuthor(files []string) {
|
|
logging.Debug(logging.CatModule, "author handler invoked with %v", files)
|
|
fmt.Println("author", files)
|
|
}
|
|
|
|
// HandleSubtitles handles the subtitles module (placeholder)
|
|
func HandleSubtitles(files []string) {
|
|
logging.Debug(logging.CatModule, "subtitles handler invoked with %v", files)
|
|
fmt.Println("subtitles", files)
|
|
}
|
|
|
|
// HandleThumb handles the thumb module
|
|
func HandleThumb(files []string) {
|
|
logging.Debug(logging.CatModule, "thumb handler invoked with %v", files)
|
|
fmt.Println("thumb", files)
|
|
}
|
|
|
|
// HandleInspect handles the inspect module
|
|
func HandleInspect(files []string) {
|
|
logging.Debug(logging.CatModule, "inspect handler invoked with %v", files)
|
|
fmt.Println("inspect", files)
|
|
}
|
|
|
|
// HandleCompare handles the compare module (side-by-side comparison of two videos)
|
|
func HandleCompare(files []string) {
|
|
logging.Debug(logging.CatModule, "compare handler invoked with %v", files)
|
|
fmt.Println("compare", files)
|
|
}
|
|
|
|
// HandlePlayer handles the player module
|
|
func HandlePlayer(files []string) {
|
|
logging.Debug(logging.CatModule, "player handler invoked with %v", files)
|
|
fmt.Println("player", files)
|
|
}
|