Feat/adaptive dial support#5
Closed
ROBdk97 wants to merge 8 commits into
Closed
Conversation
There was a problem hiding this comment.
Pull request overview
Adds Stream Deck+ dial support to the Star Citizen Stream Deck plugin by introducing a new Adaptive Dial action, its Property Inspector UI/assets, and shared PI helpers, alongside a small refactor to clearly separate key vs dial base classes.
Changes:
- Introduce
Adaptive Dialencoder action + settings schema + PI (HTML/JS/CSS) and wire it into the plugin manifest/assets build. - Refactor PI “function picker” logic into shared helpers (
SCPI.functionPicker) and update Function Key PI to use them. - Adjust action base classes to use
KeypadBasefor key-only actions; add unit tests and docs/changelog updates.
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| Tools/PiAssetsBuilder/Program.cs | Adds build step for the new PI script (pi-dial-action.js). |
| Tests/Unit/ActionKeys/AdaptiveDialTests.cs | Adds unit tests for dial rotation selection, binding resolution, and DialSettings JSON contract. |
| README.md | Documents the new Adaptive Dial capability at a high level. |
| PluginCore/PropertyInspector/js/src/sc-common.js | Adds shared PI helpers under SCPI.functionPicker (flatten + details rendering). |
| PluginCore/PropertyInspector/js/src/pi-function-key.js | Uses the new shared functionPicker helpers instead of duplicated logic. |
| PluginCore/PropertyInspector/js/src/pi-dial-action.js | New PI script for Adaptive Dial (3 dropdowns + details + click sound picker). |
| PluginCore/PropertyInspector/js/sc-components.js | Regenerated bundle to include the new shared PI helper module. |
| PluginCore/PropertyInspector/js/pi-function-key.js | Regenerated minified Function Key PI script. |
| PluginCore/PropertyInspector/js/pi-dial-action.js | New generated/minified Adaptive Dial PI script. |
| PluginCore/PropertyInspector/Dials/AdaptiveDial.html | New Property Inspector page for the dial UI. |
| PluginCore/PropertyInspector/css/src/base.css | Adds layout/styles for dial PI sections. |
| PluginCore/PropertyInspector/css/base.css | Regenerated minified CSS bundle with the new dial styles. |
| PluginCore/manifest.json | Adds the new Adaptive Dial action and explicit Controllers for all actions; bumps version to 1.2.0.0. |
| PluginCore/ActionKeys/Settings/DialSettings.cs | New settings schema for dial actions (left/right/push + click sound). |
| PluginCore/ActionKeys/SCDialActionBase.cs | New encoder base class for Star Citizen dial actions (PI payload + migration + audio). |
| PluginCore/ActionKeys/SCActionBase.cs | Narrows key action base to KeypadBase and removes unused encoder/touch stubs. |
| PluginCore/ActionKeys/ControlPanelKey.cs | Moves Control Panel action to KeypadBase and removes unused encoder/touch stubs. |
| PluginCore/ActionKeys/AdaptiveDial.cs | Implements dial rotation + push behavior using Star Citizen keybinding execution. |
| docs/usage.md | Adds detailed usage documentation and screenshot entry for Adaptive Dial. |
| docs/index.md | Mentions Adaptive Dial in the docs landing page. |
| CHANGELOG.md | Adds v1.2.0.0 release notes covering Adaptive Dial and refactors. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…activation modes triggered multiple times. imp: mouse wheel bindings now retrigger as long as key is held down. Signed-off-by: Jarex985 <Jarex985@users.noreply.github.com>
- Added new Stream Deck+ `Adaptive Dial` action with separate assignments for rotate-left, rotate-right, and push input. - Implemented dial action backend with dedicated dial base/action settings: - `AdaptiveDial` execution flow for rotation ticks and press/release handling - `SCDialActionBase` for shared dial initialization, PI updates, and setting migration - `DialSettings` schema for dial slot bindings and click sound path - Updated `manifest.json`: - Registered `Adaptive Dial` with `Encoder` controller metadata - Added explicit `Controllers` declarations for existing key actions - Bumped plugin version to `1.2.0.0` - Added Property Inspector support for dials: - New `Dials/AdaptiveDial.html` - New dial PI script (`pi-dial-action.js`) and source (`js/src/pi-dial-action.js`) - Moved shared function picker logic into `js/src/sc-common.js` and reused from key/dial PI scripts - Regenerated PI bundled assets (`sc-components.js`, pi-function-key.js, `pi-dial-action.js`, `base.css`) - Improved PI maintainability and UX behavior: - Centralized function flattening/details rendering helpers - Restored documentation comments/TODOs for unsupported axis filtering and details rendering semantics - Scoped dial details visibility rules to avoid cross-impact with key PIs - Expanded tests with `AdaptiveDialTests` for rotation resolution, executable binding selection, and settings serialization behavior. - Updated docs and release notes: - README.md, index.md, usage.md (including Adaptive Dial image) - CHANGELOG.md entry for `v1.2.0.0` including feature and internal refactor notes.
- Added new Stream Deck+ `Adaptive Dial` action with separate assignments for rotate-left, rotate-right, and push input. - Implemented dial action backend with dedicated dial base/action settings: - `AdaptiveDial` execution flow for rotation ticks and press/release handling - `SCDialActionBase` for shared dial initialization, PI updates, and setting migration - `DialSettings` schema for dial slot bindings and click sound path - Updated `manifest.json`: - Registered `Adaptive Dial` with `Encoder` controller metadata - Added explicit `Controllers` declarations for existing key actions - Bumped plugin version to `1.2.0.0` - Added Property Inspector support for dials: - New `Dials/AdaptiveDial.html` - New dial PI script (`pi-dial-action.js`) and source (`js/src/pi-dial-action.js`) - Moved shared function picker logic into `js/src/sc-common.js` and reused from key/dial PI scripts - Regenerated PI bundled assets (`sc-components.js`, pi-function-key.js, `pi-dial-action.js`, `base.css`) - Improved PI maintainability and UX behavior: - Centralized function flattening/details rendering helpers - Restored documentation comments/TODOs for unsupported axis filtering and details rendering semantics - Scoped dial details visibility rules to avoid cross-impact with key PIs - Expanded tests with `AdaptiveDialTests` for rotation resolution, executable binding selection, and settings serialization behavior. - Updated docs and release notes: - README.md, index.md, usage.md (including Adaptive Dial image) - CHANGELOG.md entry for `v1.2.0.0` including feature and internal refactor notes.
2ede807 to
d1020df
Compare
Author
|
Sorry I messed something up and created a new pr instead in #6 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#6