Skip to content

[christmas-countdown] Four of ten settings are read by neither the plugin nor the core #377

Description

@ChuckBuilds

Plugin

  • Plugin id: christmas-countdown
  • Plugin version: 1.0.2

Describe the bug

Four of the plugin's ten configuration settings do nothing:

Setting Default Schema says
transition.type redraw One of redraw, fade, slide, wipe, dissolve, pixelate
transition.speed 2 "Transition speed (1=slow, 10=fast)"
transition.enabled true "Enable or disable transitions"
high_performance_transitions false "Use high-performance transitions (120 FPS) instead of standard (30 FPS)"

manager.py is 615 lines and the string transition does not appear in it once, nor does high_performance.

I checked the core before concluding, in case transitions were a display-controller feature the plugin merely declared. They are not: every occurrence of "transition" under LEDMatrix/src/ is a comment about plugin state-machine transitions or Vegas-mode cycle boundaries. Nothing reads a transition config key, and there is no implementation of fade, slide, wipe, dissolve or pixelate anywhere.

Why it matters

The web UI presents a six-value dropdown and two more switches, all with descriptions promising specific visual behaviour. Choosing any of them changes nothing, with no warning and no log line — the most confusing possible failure mode, and 40% of this plugin's settings.

How I verified

Rendering with each of the six transition.type values produces byte-identical output:

frames=1: 1 distinct of 6
    9fbfca281f ['redraw', 'fade', 'slide', 'wipe', 'dissolve', 'pixelate']

A single frame cannot show an animation, so that alone would not be conclusive — which is why I went to the source rather than stopping there.

Suggested fix

Two reasonable paths, and the choice is yours:

  1. Remove the four settings from config_schema.json. Nothing can break, since no configuration using them works today. This is a schema removal so it would want a major bump, but the practical risk is nil.
  2. Implement them, if transitions between plugin screens are wanted — in which case it probably belongs in the core display controller rather than per-plugin, so every plugin benefits.

I have documented them as non-functional in #377 rather than removing them unilaterally, since six named transition types reads like deliberate design that may be waiting on implementation rather than an accident. Happy to do the removal if you would prefer it.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions