OpenLightingProject / OpenLightingProject/open-fixture-library
Allow nested switching channels
Nobody has claimed this yet.
- Dominant language
- JSON
- Stars
- 258
- Forks
- 100
- Avg merge
- 11h 52m
- Merged PRs (30d)
- 53
Description
This makes things complicated...
See fixture martin/mac-aura in #225. It has two independent FX select channels with respective FX adjust channels, whose functionalities depend on the value of their FX select channel.
Additionally, an FX Sync channel can switch if FX1 adjust is used only for FX1 or also for FX2.
This could be realized with switched switching channels:
"FX1 select": {
"type": "Effect",
"defaultValue": 0,
"capabilities": [
{
"range": [0, 9],
"name": "Idle",
"switchChannels": {
"FX1 adjust": "FX1 adjust n/a"
}
},
// ...
{
"range": [40, 42],
"name": "Aura strobe delay",
"switchChannels": {
"FX1 adjust": "FX1 adjust Trigger Delay"
}
},
{
"range": [43, 45],
"name": "Strobe alternate single",
"switchChannels": {
"FX1 adjust": "FX1 adjust Speed"
}
}
// ...
]
},
// ...
"FX2 select": {
"type": "Effect",
"defaultValue": 0,
"capabilities": [
{
"range": [0, 9],
"name": "Idle",
"switchChannels": {
"FX2 adjust": "FX2 adjust n/a"
}
},
// ...
{
"range": [40, 42],
"name": "Aura strobe delay",
"switchChannels": {
"FX2 adjust": "FX2 adjust Trigger Delay"
}
},
{
"range": [43, 45],
"name": "Strobe alternate single",
"switchChannels": {
"FX2 adjust": "FX2 adjust Speed"
}
}
// ...
]
}
// ...
"FX sync": {
"type": "Effect",
"defaultValue": 0,
"capabilities": [
{
"range": [0, 49],
"name": "no sync",
"switchChannels": {
"FX1 adjust / FX1+2 adjust": "FX1 adjust",
"FX2 adjust / Nothing": "FX2 adjust"
}
},
{
"range": [50, 50],
"name": "sync",
"switchChannels": {
"FX1 adjust / FX1+2 adjust": "FX1+2 adjust",
"FX2 adjust / Nothing": "Unused"
}
},
// ...
]
}
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the martin/mac-aura fixture referenced in #225 and the existing handling of switchChannels on channel capabilities. Trace how a switched channel currently resolves its target, then determine how a target that is itself switched should be represented. Done means the fixture can express the FX1, FX2, and FX sync combinations without ambiguous channel behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100