Add build workflow and requirements
This commit is contained in:
25
session_summary.md
Normal file
25
session_summary.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# Session Summary: VHS Decode GUI Development
|
||||
|
||||
This session focused on creating a graphical user interface (GUI) wrapper for the `vhs-decode` command-line application.
|
||||
|
||||
## Key Accomplishments:
|
||||
|
||||
1. **CLI Argument Investigation**: Explored the `vhs-decode` command-line interface to understand its various arguments, including input/output files, video systems (NTSC, PAL), tape formats, tape speeds, and advanced settings like frequency and threads.
|
||||
2. **Technology Choice**: Opted for Python with `tkinter` (using `ttk` for improved aesthetics) for the GUI development, balancing cross-platform compatibility with ease of development.
|
||||
3. **Virtual Environment Setup**: Guided the user to create and activate a Python virtual environment (`.venv`) to manage dependencies.
|
||||
4. **Basic GUI Implementation**: Developed the initial GUI structure including:
|
||||
* Input and output file/directory selection with browse buttons.
|
||||
* Core settings for Video System, Tape Format, Tape Speed, and RF Frequency (with CXADC option).
|
||||
* Advanced settings for Threads, Start Frame, Length, Overwrite, Chroma Trap, and Debugging.
|
||||
* "Start Decode Now" and "Stop Decode" buttons.
|
||||
* An output log area to display the command-line application's output.
|
||||
5. **Video System Refinement**: Modified the "Video System" dropdown to remove the "Default" option, ensuring users explicitly select a system (PAL, NTSC, PAL-M, NTSC-J) and setting "PAL" as the initial default.
|
||||
6. **Queue System Integration**: Implemented a job queuing mechanism, inspired by tools like Handbrake:
|
||||
* Added an "Add to Queue" button to capture current settings as a job.
|
||||
* Introduced a `ttk.Notebook` widget at the bottom, separating the output log into a "Log" tab and adding a new "Queue" tab.
|
||||
* The "Queue" tab features a `ttk.Treeview` to display queued jobs with their status (Pending, Running, Completed, Failed), input/output files, video system, and tape format.
|
||||
* Added "Start Queue", "Remove Selected", and "Clear Queue" controls for queue management.
|
||||
* Developed the logic to process queued jobs sequentially, updating their status in the UI and logging output to the "Log" tab.
|
||||
7. **Enhanced File Dialogs (Linux)**: Integrated `zenity` to provide a more functional and native-looking file and directory selection experience on Linux systems, allowing users to create new folders within the dialog. The application gracefully falls back to `tkinter.filedialog` on Windows (which uses native Windows dialogs) or if `zenity` is not available on Linux.
|
||||
|
||||
The resulting `vhs_decode_gui.py` script provides a user-friendly interface for interacting with the `vhs-decode` CLI application.
|
||||
Reference in New Issue
Block a user