Skip to content
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

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open

[POC] OSCQuery #14229

wants to merge 7 commits into from

Conversation

daschuer
Copy link
Member

@daschuer daschuer commented Jan 25, 2025

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.

@daschuer
Copy link
Member Author

Mixxx has currenty 118899 COs tendency rising.

@Eve00000
Copy link
Contributor

Eve00000 commented Jan 25, 2025

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", "");
}

Copy link
Contributor

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?

Copy link
Member Author

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.

@daschuer daschuer changed the title [POC] OSCQuerry [POC] OSCQuery Jan 25, 2025
@@ -21,6 +21,7 @@ class DlgDeveloperTools : public QDialog, public Ui::DlgDeveloperTools {
void slotControlSearch(const QString& search);
void slotLogSearch();
void slotControlDump();
void slotOscQuerryDump();
Copy link
Member

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

Suggested change
void slotOscQuerryDump();
void slotOscQueryDump();

continue;
}
fullPath += "/" + pathPart;
if (objects.size()) {
Copy link
Member

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?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes.

Comment on lines +13 to +19
void addAddress(
const QString& address,
const QString& type,
const QString& access,
const QString& description);

void removeAddress(const QString& address);
Copy link
Member

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?

Copy link
Member Author

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants