# 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)