-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create JavascriptPlayerProxy #14314
base: main
Are you sure you want to change the base?
Create JavascriptPlayerProxy #14314
Conversation
9dd86c3
to
9dc994c
Compare
9dc994c
to
ca4c97c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the PR! As far as I can tell, the ultimate purpose of this PR is to allow JS controller scripts to access information about the tracks loaded into each deck, so it can be displayed on more advanced DJ controllers that have integrated displays.
As it stands, this seems to only be a first draft, and missing the actual integration. Here are a few notes, based on a quick initial review:
- In the end, the goal of this PR is to extend the API offered to controller scripts. This has implications about backward compatibility in the future, as once those interfaces are released, changing them runs the risk of breaking existing controller scripts.
- For this reason, it would be advisable to only expose strictly necessary information, like title, artist etc. The waveform data seems to be the odd one out, as there a various different formats possible. I would therefore advise on excluding the waveform data for a first approach.
- Also, it would be best to get consensus on the desired API offered to controller scripts before homing in on a concrete implementation. Could you give an example on what usage would look like in an actual controller script?
The final API might look totally different. For example, based on the current design pattern of the Engine JS API, the following design could make sense:
engine.getString(string group, string key); // returns string
engine.getString("[Channel1]", "track_artist")
engine.getString("[Channel1]", "track_title")
(As a sidenote, it is possible to mark PRs such as this as drafts until the implementation is finished).
FYI the corresponding Zulip convo is |
Thanks, I missed that! Still getting used to how the communication is spread across the different channels. |
Thanks for chirping in @cr7pt0gr4ph7. I appreciate your suggestion but IMO it has also been discussed previously and rejected (See the corresponding zulip thread). The |
Create JavascriptPlayerProxy to expose track infos to JS controllers in a safe way