-
-
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
[POC] OSCQuery #14229
base: main
Are you sure you want to change the base?
[POC] OSCQuery #14229
Conversation
Mixxx has currenty 118899 COs tendency rising. |
Someone had been working a lot to, that makes me happy because I've been working on new MixxxInTouchOSCCovCop version all day (and will be working on it tomorrow to) Add: can you include a rar-ed JSon file? |
addAddress("/cov/" + address, "f", "3", ""); | ||
addAddress("/get/cov/" + address, "f", "3", ""); | ||
} | ||
|
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.
what is the "f", "3", "" for?
f = float?
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.
All is described here, but we should make the code readable on its own.
https://github.com/Vidvox/OSCQueryProposal
"f" = float
"3" = rw = Read and write.
@@ -21,6 +21,7 @@ class DlgDeveloperTools : public QDialog, public Ui::DlgDeveloperTools { | |||
void slotControlSearch(const QString& search); | |||
void slotLogSearch(); | |||
void slotControlDump(); | |||
void slotOscQuerryDump(); |
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.
typo is repeated multiple times, please grep
for the other occurrences
void slotOscQuerryDump(); | |
void slotOscQueryDump(); |
continue; | ||
} | ||
fullPath += "/" + pathPart; | ||
if (objects.size()) { |
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.
implicit narrowing cast. what does this imply? this code is only executed on first iteration?
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.
Yes.
void addAddress( | ||
const QString& address, | ||
const QString& type, | ||
const QString& access, | ||
const QString& description); | ||
|
||
void removeAddress(const QString& address); |
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.
the implementation of both of these is really hard to understand IMO... Can you try to simplify it?
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.
Not yet, it is still premature. Or do you see a low hanging fruit?
This PR implements the a bit of the OSCQuery protocol into Mixxx. It finally allows to subscribe CO updates form remote. Somehow a mapping mechanism. See https://github.com/Vidvox/OSCQueryProposal
@Eve00000 and I have discussed this and came to the conclusion that we need two root namespaces:
cop = Returns the parameter represenatation of a ControlObject (Controller Domain)
cov = Returns the value presnetation of a ControlObject (Engine Domain)
Both are duplicated as /get/cop and /get/cov to query the values from clients which do not have implemented the
OSCQuery protocol
This results for a compelex example to this OSC path:
"/cop/EffectRack1/EffectUnit1/group/(Channel1Stem1)/enable"
This results in a nice tree of COs, however we put OSCQuery to the edge, because the resulting formatted JSON file is 233 MB.
I have created a button in the developer menu to store the file in the Mixxx config folder as oscquerry.json.
You can Open it with Firefox (after copy it to your download folder) to nicely collapse all and navigate.
This is a good preview how it will work in client tools when selecting a Mixxx control.