EMMS Smart Watch Feature Requirements
GOAL
Enable EMMS in Emacs to:
- Remember the last playback position (per media file)
- Resume from last position automatically
- Visually annotate media browser/dired/ibuffer with progress
- Indicate completed (fully watched) files
TASKS
TODO Persistent Storage for Play States
- Store last played position, duration per file
- Use a sexp file, e.g., an alist
- Ensure efficient lookup/update
TODO Hook Integration in EMMS
- On playback stop/change, save position and duration
- On playback start, check and resume from last position if available
TODO Visual Annotation in Media Browser
- For each video file, display watch percentage visually
- Color or icon for completed files (e.g., 95%+ watched)
- Integrate with dired/ibuffer/EMMS browser
TODO Mark Files as Completed
- If user finishes a file (end reached or high %), update state
- Option to manually mark as complete
TODO User Configuration
- Set threshold for “completed” (e.g., 95% watched)
- Customize appearance
TODO Testing & Edge Cases
- File renamed/moved
- Partial plays
- Support for non-video formats
TODO Documentation
- Usage instructions
- How to clear/reset a file’s watch history
NOTES
- Use EMMS hooks for integration
- Make all user-facing features easily customizable
- Consider extensibility for other media types