Add project changelog
This commit is contained in:
251
CHANGELOG.md
Normal file
251
CHANGELOG.md
Normal file
@@ -0,0 +1,251 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user