Fix NS4FX mapping state and fader cut lifecycle - #27
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c9d2b9dc68
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| // setup elapsed/remaining tracking | ||
| engine.makeConnection("[Controls]", "ShowDurationRemaining", NS4FX.timeElapsedCallback); | ||
| // setup elapsed/remaining tracking locally; Mixxx 2.7 no longer exposes [Controls], ShowDurationRemaining. |
There was a problem hiding this comment.
Add the required disclaimers around generated comments
This AI-authored commit adds this comment, along with several other comment blocks, without framing them at both ends with the required AI-generation disclaimer. Add the mandated framing to every newly generated comment block before submission.
AGENTS.md reference: AGENTS.md:L40-L44
Useful? React with 👍 / 👎.
| NS4FX.decks.forEachComponent(function(deck) { | ||
| if (deck.position !== undefined) { | ||
| deck.position.trigger(); |
There was a problem hiding this comment.
Iterate deck containers when refreshing the clock
When Shift+Wheel toggles the time mode while a deck is paused, this does not refresh its displayed time: ComponentContainer.forEachComponent recursively invokes the callback for leaf Component objects, not the four Deck containers, so every callback argument lacks a position member and trigger() is never called. Iterate the numbered decks or deck containers directly so the new remaining/elapsed value appears without waiting for another playposition event.
Useful? React with 👍 / 👎.
…nerated by an AI Agent. Synchronize NS4FX duration mode on initialization Trigger the ShowDurationRemaining connection during mapping initialization so the controller LEDs reflect the current mode immediately. END AI AGENT DISCLAIMER.
Disconnect active hotcue status callbacks while a track load settles so transient engine states cannot flicker the controller LEDs. Reconnect and refresh the LEDs after the existing delay.
0cwa
left a comment
There was a problem hiding this comment.
Approved after static review of head fd06e0d against base 0cwa/mixxx:pr/combined-pr14-features (b7bde6e). Verified the complete single-file accumulated diff: ShowDurationRemaining initialization and paused-deck refresh, hotcue disconnect/reconnect around track loads, deck-owned fader-cut timer cleanup across pad-mode/deactivation/shutdown, and all four decks active for fader cuts. GitHub reports mergeable; triage passed and CodeRabbit status is passed/skipped for this non-default base. Exact head JavaScript passes syntax-only validation. No functional blocker found; no runtime/build/tests performed.
Summary
This is a focused follow-up for #23 and targets its head branch so the PR contains only the NS4FX fix commit.
Validation
node --check res/controllers/Numark-NS4FX-scripts.jsgit diff --checkMidiMappings/MappingTestFixture.ValidateMappingXML/Numark_NS4FX_midi_xmlMidiMappings/MappingTestFixture.LoadMapping/Numark_NS4FX_midi_xml