Files
moonlight-drive-in/CHANGELOG.md
2025-12-09 16:40:10 +11:00

252 lines
6.7 KiB
Markdown

# Changelog
All notable changes to the Moonlight Drive-In project.
## [Unreleased]
### Planned Features
- LEGO Dimensions Portal integration (7-zone simultaneous NFC reading)
- Bluetooth LED controller integration for ambient lighting
- Expanded capacity beyond 64 movie mappings
- Additional automation patterns
- Enhanced gallery interfaces with custom grouping
## [2.0.0] - Current Version
### Added - Folder Sequence Support
- **Folder-based sequential playback**: Map NFC tags to folders containing multiple videos
- **Automatic progression**: Each scan plays the next video in the sequence
- **State persistence**: Tracks current position in each folder sequence
- **Reset functionality**: Button to restart all sequences from beginning
- **folder_mapping.txt**: New mapping file for folder sequences
- **folder_state.json**: Automatic state tracking file
- **groupvideos directory**: Dedicated location for folder sequences
### Added - Web Interface
- **Multi-page web dashboard**: Statistics, Controls, Videos, System pages
- **Real-time updates**: SocketIO-based live status updates
- **Mobile responsive**: Works on phones, tablets, and desktops
- **Network access**: Control from any device on the same network
- **Video dropdown**: Manual video selection interface
- **Hot-reload mappings**: Reload configuration without restart
- **System statistics**: Comprehensive performance monitoring
### Added - Enhanced Debug Console
- **Global input capture**: NFC works even when video is fullscreen
- **Cross-platform support**: pynput, Windows hooks, and Linux X11
- **Folder reset button**: Quick restart of all folder sequences
- **Enhanced logging**: Color-coded log messages
- **Status indicators**: Real-time system status display
- **Web URL display**: Easy access to web interface URLs
### Added - MPV Integration
- **Seamless transitions**: Dual-player architecture for smooth playback
- **Superior quality**: MPV rendering for better video quality
- **Hardware acceleration**: GPU-accelerated video decoding
- **Format support**: Wide range of video formats
- **Performance tracking**: Transition timing and statistics
### Improved - Anti-Repeat Algorithm
- **36-trailer history**: Prevents repetition in trailer playback
- **Intelligent rotation**: Automatically manages available trailer pool
- **History management**: Clears oldest history when pool runs low
- **Pool statistics**: Shows available vs. recent trailers
### Improved - Configuration System
- **Automatic directory creation**: Sets up folder structure on first run
- **Example files**: Generates template mapping files
- **Enhanced validation**: Better error checking and reporting
- **Folder support**: Native support for folder-based sequences
- **State management**: Save and load folder playback positions
### Technical Improvements
- Thread-safe GUI updates using `root.after()`
- ASCII-safe console output (no Unicode emoji issues)
- Proper Windows PATH handling with quotes
- Enhanced error handling and logging
- Modular code architecture
- Comprehensive documentation
## [1.5.0] - Web Interface Integration
### Added
- Flask-based web interface
- SocketIO for real-time communication
- Remote NFC input capability
- Network client support (port 1360)
- Performance monitoring
- Web-based statistics display
### Fixed
- Thread safety issues in web integration
- JSON serialization for datetime objects
- Network IP detection for web URLs
## [1.0.0] - VLC to MPV Migration
### Changed
- Migrated from VLC to MPV backend
- Improved video quality
- Better hardware acceleration
- Enhanced transition smoothness
### Added
- Dual-player architecture
- Seamless video transitions
- Queue-based video management
- Transition timing metrics
### Deprecated
- VLC-based main.py (kept for reference)
## [0.9.0] - Enhanced Debug Console
### Added
- Global keyboard capture
- NFC input buffering
- Timeout-based input processing
- Multi-platform input support
- Enhanced statistics display
- Color-coded logging
### Improved
- Console UI layout
- Error handling
- Status indicators
- User feedback
## [0.8.0] - NFC Integration
### Added
- NFC reader support (ACS ACR122)
- key_mapping.txt for NFC configuration
- Automatic video triggering
- 64-video mapping capacity
### Features
- Physical NFC tag control
- Instant video switching
- Mapping file validation
## [0.5.0] - Initial Release
### Added
- Basic VLC video playback
- Trailer rotation
- Simple video queue
- Directory-based video loading
- Configuration system
- Logging framework
### Features
- Fullscreen video playback
- Automatic trailer cycling
- Manual video control
- Basic statistics
## Development History
### Phase 1: Foundation (0.1.0 - 0.5.0)
- Initial video player concept
- VLC integration
- Basic automation
### Phase 2: NFC Integration (0.6.0 - 0.8.0)
- NFC reader support
- Physical tag control
- Mapping system
### Phase 3: Enhanced Console (0.9.0 - 0.9.5)
- Global input capture
- Better UI
- Improved logging
### Phase 4: MPV Migration (1.0.0 - 1.5.0)
- Backend rewrite
- Quality improvements
- Web interface addition
### Phase 5: Folder Support (2.0.0)
- Sequential playback
- Folder mapping system
- State persistence
- Enhanced web interface
## Known Issues
### Current
- None reported
### Workarounds Available
- Unicode console: Use ASCII version of console
- Windows PATH: Use quoted paths in batch files
- Folder validation: Run diagnostic script
## Compatibility
### Tested Platforms
- Windows 10 (primary)
- Windows 11 (primary)
- Linux (experimental)
### Tested Hardware
- NFC: ACS ACR122 USB reader
- Display: 1920x1080 (Full HD)
- KAIYU Bluetooth LED Controller (in progress)
### Tested Video Formats
- MP4 (recommended)
- AVI
- MKV
- MOV
- WMV
## Migration Notes
### From 1.x to 2.0
1. Update Python dependencies: `pip install -r web_requirements.txt`
2. Create groupvideos directory: `videos/groupvideos/`
3. Create folder_mapping.txt if using folder sequences
4. Existing key_mapping.txt continues to work
5. No changes needed to video files
### From VLC to MPV
1. Install MPV player
2. Update requirements
3. Use `mpv_main_fixed.py` instead of `main.py`
4. Mappings remain unchanged
## Contributors
- Jess - Project creator and primary developer
## Roadmap
### Short Term (Next Release)
- [ ] LEGO Dimensions Portal basic integration
- [ ] LED controller basic support
- [ ] Enhanced gallery system
- [ ] Custom icon support (64x64px)
### Medium Term
- [ ] Multi-zone NFC reading
- [ ] Advanced LED effects
- [ ] Remote configuration editor
- [ ] Mobile app for control
### Long Term
- [ ] Cloud sync for settings
- [ ] Multi-projector support
- [ ] Advanced automation
- [ ] Event scheduling
## License
Personal project for Moonlight Drive-In theater system.
---
For setup instructions, see [SETUP.md](SETUP.md)
For technical details, see [README.md](README.md)