feat: streamdeck+ Song title and custom layout, changes to error handling#151
feat: streamdeck+ Song title and custom layout, changes to error handling#151XeroxDev merged 10 commits intoXeroxDev:masterfrom
Conversation
|
|
IMO this resolution is fine in regards of the linked ticket. But could provide some screenshots to display how the change is looking (and how/where the new messages are displayed)? |
|
It displays it like this upon connection issues https://share.nosjo.xyz/KBjLRB.png |
XeroxDev
left a comment
There was a problem hiding this comment.
Looks good for me. Will be deployed with the next update in the future (such a small change doesn't justify an entire update yet)
|
Slight mistake was meant to open a new pull request for those changes but oh well guess this works This new commit adds support for showing song title, author or album instead of the play/pause text This also depends on XeroxDev/Stream-Deck-TS-SDK#21 |
There was a problem hiding this comment.
Pull Request Overview
This PR adds Stream Deck+ support for displaying song titles with custom layouts and improves error handling for connection states. The main purpose is to enhance the Stream Deck+ encoder experience with better metadata display and customizable layouts.
Key Changes:
- Added new settings for Stream Deck+ including title format customization and custom layout file support
- Enhanced error handling to distinguish between websocket errors and other connection issues
- Modified thumbnail rendering to support larger display sizes (100x100 instead of 48x48)
Reviewed Changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| src/ytmd-pi.ts | Added new input element properties for title format, SD+ settings, and custom layout configuration |
| src/pis/play-pause.pi.ts | Implemented controller type detection to conditionally display SD+ settings and added new setting fields |
| src/interfaces/context-settings.interface.ts | Extended PlayPauseSettings interface with displayTitleFormat and customLayout properties |
| src/actions/play-pause.action.ts | Refactored song data handling, added title formatting logic, improved error handling, and implemented custom layout support |
| property-inspector.html | Added UI elements for SD+ settings including title format and custom layout configuration |
| package.json | Updated streamdeck-typescript and ytmdesktop-ts-companion package versions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| displayFormat: displayFormat ?? "{current}" | ||
| displayFormat: displayFormat ?? "{current}", | ||
| displayTitleFormat: displayTitleFormat ?? '{title}', | ||
| customLayout: customLayout ?? false |
There was a problem hiding this comment.
The customLayout property is defined as a string in the interface (context-settings.interface.ts line 9), but the default value here is false (boolean). This should be an empty string ('') to match the type definition.
| customLayout: customLayout ?? false | |
| customLayout: customLayout ?? '' |
|
I let copilot review the code as well to test it out. You don't have to implement everything it says. |
|
@nosjo could you maybe rebase this pr / resolve merge conflicts (I changes some things regarding development and build process) and also remind me if you wanted to add / change some things as well. (with the new workflow I can easier release builds from everywhere) |
|
@XeroxDev of course i get it done sometime soon |
|
Short update: the rebase / merge conflict could be a bit more complex now, because I refactored a lot more recently. Especially PI stuff changed heavily. I'm sorry 😅 |
|
Not sure what else i wanted to add been to long and forgot but it should all work now with the new PI stuff. |
|
oh yeah also needs this XeroxDev/Stream-Deck-TS-SDK#41 merged almost forgot that would be bad without |
The linked pull request seems empty? 😅 |
|
I noticed in the package json you've updated the streamdeck lib version. Currently latest version is 3.3.4. So we should make sure we use the latest version, especially after the pr you mentioned in the comments. (github bugs, so I can't put that comment to the correct line nor do it as a review ._.) |
|
Yeah my mistake thought the code was not in the streamdeck lib but i was wrong and did not notice that it actually was there so changed the version to the current 3.3.4 |
|
One last thing: I noticed a mismatch: package.json bumps streamdeck-typescript to ^3.3.4, but the lockfile still resolves it to 3.2.1 (or at least contains that resolution). |
|
Just ran npm update and that updated it in the file, deleted the modules folder a bit earlier just to test that everything compiled fine so know that folder is clean. |







Not to happy with my changes but not sure what other way can be done to fix #150