OpenLightingProject / OpenLightingProject/open-fixture-library

QLC+: Add null pixelKeys as empty heads

Open
#809 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

component-plugin priority-low
Dominant language
JSON
Stars
258
Forks
100
Avg merge
11h 52m
Merged PRs (30d)
53

Description

Extracted from #421, the following change will create every possible matrix position as QLC+ head (even "holes") which better visualizes non-rectangle matrices.

Before adding this to our QLC+ plugin, we should make a pull request to QLC+ that allows empty heads in the XML schema and, most important, hides empty heads from the 2D view.

  if (hasMatrixChannels) {
    for (const zLevel of mode.fixture.matrix.pixelKeyStructure) {
      for (const row of zLevel) {
        for (const pixelKey of row) {
          const channels = mode.channels.filter(channel => controlsPixelKey(channel, pixelKey));
          const xmlHead = xmlMode.element(`Head`);

          for (const ch of channels) {
            xmlHead.element({
              Channel: mode.getChannelIndex(ch.key)
            });
          }
        }
      }
    }
  }

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the QLC+ XML schema and its 2D view behavior, then compare them with the matrix export snippet in this issue. Done means QLC+ accepts empty Heads for matrix holes and hides those empty heads from the 2D view; the requested change is an upstream QLC+ pull request.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, xml
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.