Files
infoscreen-dev/TODO.md

2.3 KiB

Project TODOs

This file tracks higher-level todos and design notes for the infoscreen client.

Video playback (Raspberry Pi)

  • Remove taskbar / window decorations in VLC window

    • Goal: show video truly fullscreen without window title bar or OS panel/taskbar overlapping.
    • Ideas / approaches:
      • Use libVLC options from python-vlc: --no-video-deco, --no-video-title-show, --video-on-top, and call player.set_fullscreen(True) after playback starts.
      • Run the Display Manager in a dedicated kiosk X session (no panel/desktop environment) or minimal window manager (openbox/matchbox) to avoid taskbar.
      • Use wmctrl as a fallback to force fullscreen/above: wmctrl -r <title> -b add,fullscreen,above.
      • Add an env var toggle, e.g. VLC_KIOSK=1, to enable these options from runtime.
    • Acceptance criteria:
      • Video occupies the full display area with no visible window controls or panels on top.
      • Behaviour toggleable via env var.
  • Add possibility to adjust sound level by HDMI-CEC using Python

    • Goal: allow remote/automatic volume control over HDMI using CEC-capable hardware.
    • Ideas / approaches:
      • Use libcec bindings (e.g. pycec / cec packages) or call cec-client from shell to send volume commands to the TV/AVR.
      • Map event volume (0.0-1.0) to CEC volume commands (some devices support absolute volume or key presses like VOLUME_UP/VOLUME_DOWN).
      • Provide a small adapter module src/hdmi_cec.py that exposes set_volume(level: float) and volume_step(up: bool) used by display_manager.py when starting/stopping videos or on explicit volume events.
    • Acceptance criteria:
      • set_volume() issues appropriate CEC commands and returns success/failure.
      • Document any platform limitations (some TVs don't support absolute volume via CEC).

Next-high-level items

  • Add environment-controlled libVLC hw-accel toggle (VLC_HW_ACCEL=1|0) to display_manager.py so software decode can be forced when necessary.
  • Add automated tests for video start/stop lifecycle (mock python-vlc) to ensure resources are released on event end.

Notes

  • Keep all changes backward-compatible: external vlc binary fallback should still work.
  • Document any new env vars in README.md and .github/copilot-instructions.md if added.

Generated: 2025-10-25