Conversation
e2e4950 to
cb4059c
Compare
0ea02bd to
1c270cf
Compare
1c270cf to
cdcbd4e
Compare
|
@mixxxdj/developers what are you opinion about where this PR is aiming? I'm now at a stage where the mapping is pretty stable and usable. I appreciate that this introduce a huge amount of source code. I'm afraid there is no alternative, and I think the current screen content is really impressive! (Happy to post a full demo video if you would like me to justify adding 74 QML files...) I would like to get an agreement in principle before I start working on the documentation PR. Note that every C++ change is the early version of the dependencies and once those are merged, this PR should include no core source changes. |
|
I will try to take a look at this soon. |
|
Sure, we want to have this feature in Mixxx. This is why we co-financed the S4 Mk3 for Owen. |
the biggest point of controversy was how the data from the engine is shared with the controller. That is a mechanism that will be used by every controller with a screen, and needs to be safe and efficient. If we are agreed on how that works, then the rest of the changes are good to go |
|
The approach I went with is a controller settings to enable the API rejected in #12199, is this is a must have for the screen. As suggested in the PR description, this will allow me to maintain a single code base, and also allow advanced users to build this feature while still using the mainstream mapping. Obviously, if we ever manage to get a stable API in Mixxx, we can eventually make the migration. |
|
for sure, we want to get this in and don't want to have forks that need maintenance. I do like the approach of using a controller setting to enable / disable the new API. That limits the blast radius nicely. If/when another controller screen comes online, we can iterate on the design as needed. |
cdcbd4e to
d3b16c3
Compare
f5b7c13 to
85f2705
Compare
85f2705 to
60383a2
Compare
|
Manual PR available in mixxxdj/manual#703 |
8b726bc to
1c75b6f
Compare
1c75b6f to
c2c7272
Compare
|
This PR now solely bring the new QML mapping. I have also dropped the fix for the regression, so this should be ready for merge hopefully 🤞 (FYI, a branch with HID mapping + screen mapping + shared API is still available and up to date on my branch |
|
thanks for shifting things around! |
|
This should now be ready for merge, as #15216 has now been merged! |
|
I tried to change the Screens setting from Classic to Advanced while I was playing a track, and Mixxx UI locked up (sound still playing) with this spammed in the console:
|
|
and backtrace: |
|
another thread: |
|
Yes, this is an instance of #14606 - If you apply the patch in there, it should allow you to test correctly! If you want, I have a branch forking this current one with the fix applied + runtime data
Sounds strange, I'll try and reproduce it. Just had tracks loaded on each deck playing, right? Or do I need anything to reproduce it? |
|
ok I'll take a look. I will be traveling after today for a week, so I will not be able to do any more testing. But in general, this worked great! |
|
Do you reckon we could merge it? Worth to point out that this is going to main, so still alpha! |
ywwg
left a comment
There was a problem hiding this comment.
I agree this is working really well so far and we can iterate on individual problems as they come up 🚀
|
I am so excited to show off the Mixxx logo on the S4 screens 😎 |
|
|
||
| // Cast to float | ||
| float max = static_cast<float>(u8max); | ||
| float max = static_cast<float>(u8max) * allGain; |
There was a problem hiding this comment.
Why is this changed in a controller specific PR?
There was a problem hiding this comment.
Yeah, this PR contains some minor tweaks and fix as well, but they are all contained into atomic commits.
|
Let's merge this! As one core dev has tested this successful and most of the code only affect this one controller. |
This PR include support for the S4 Mk3 screen support. It is made to work without #12199 although there is a setting to enable communication between mapping. This way, I can maintain a single mapping definition, without needing to get an API commitment for communication between mapping.
It includes two themes:
Depends on:
Here is the list of improvement made on the core mapping
feat/s4-mk3-screen-support-with-shared-data)