diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..75e5906 --- /dev/null +++ b/CHANGELOG.md @@ -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)