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