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

6.7 KiB

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

For technical details, see README.md