-
-
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
Remove offensive language (Pt. 3) #11960
base: 2.4
Are you sure you want to change the base?
Conversation
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.
small nitpick, we renamed EngineMaster
to EngineMixer
, but [Master]
to [Main]
, wouldn't [Mixer]
have been better?
s_qCOAliasHash.insert(originalKey, aliasKey); | ||
s_qCOHash.insert(aliasKey, pControl); |
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.
could this get expensive if the group is large? would it be better to do the aliasing for the group on lookup instead?
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.
That way, as part of the lookup we could also print a warning if the alias was used instead of the non-aliased group.
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.
could this get expensive if the group is large?
You mean memory-wise? It adds a regular alias for every member in a group, but it shouldn't be that much of an issue. In terms of runtime performance, it shouldn't be an issue because lookups are only performed when a new CO is created and it's O(1).
would it be better to do the aliasing for the group on lookup instead? That way, as part of the lookup we could also print a warning if the alias was used instead of the non-aliased group.
True, this could be worth considering. I'll have a look.
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.
You mean memory-wise? It adds a regular alias for every member in a group, but it shouldn't be that much of an issue.
Right, if the group is large, this could bloat the table quite a bit. Yes, lookups are
Doing the aliasing lookup would avoid that and only be worse performing on the unhappy path (probing via alias group, if CO exists return (happy path) otherwise lookup primary group name, probe again using primary group name, print warning, etc).
s_qCOHashMutex.unlock(); | ||
insertAlias(aliasKey, key); | ||
} else { | ||
s_qCOHashMutex.unlock(); | ||
} |
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.
I'd prefer if we used a locker and just manually unlocked just before.
I first though the same, but on the other hand the group is also used for the effects framework. Something like Maybe we can use this as an oppurtunity to split the |
Yes, I think that would be a good idea, but I'm a bit worried about the complexity (diff size) this entails. |
Here's a proposal for the rename:
Well, we won't know until we try 😉 If we add the simple group alias now and we want to rename the COs later on, we will have to maintain two aliases, so let's check if we can do it now. |
I agree with most of these, though I feel like |
For me it is clear what App means. For non programmers this term is strictly connected to mobile phone Apps. |
Are the remaining [Masters] intentional? |
While I personally don't like that Applications on desktop are being called "Apps" (especially because its a term that has been coined by apple for their mobile devices), I think I've lost the fight since even Microsoft calls them Apps now (see MS Store). I think regular end-users are used to calling desktop applications Apps as well by now. |
Which ones? |
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.
If we change all official mappings to the new COs, we will not notice if we break our backward compatibility in a future code change by accident.
Therefore, please add a testcase, that ensures the backward compatibility of the legacy CO names.
[App] -> [Mixxx]? or [Info]? |
[Master],delay [Master],enabled |
👍 for |
|
Please think about users without programming skills, which have downloaded, or will download mappings from our mappings forum. Now these mappings are useable - even if the mapping is unmaintained. We will loose these users for Mixxx, if we can't ensure backwards compatibility. |
Please keep in mind that the documentation always lags behind the implementation, for example the newly added effect controls. If someone would fork an official beta skin that may stop working. Which controls are we talking about? |
@JoergAtGithub Losing these users is a bit if an exaggeration IMHO, I guess they'll either come to the forum asking for help or sinply switch to another skin. |
The documentation of the COs in the manual is incomplete, therefore it's not suitable as criteria. But there are also COs, which are not useful for mappings or skins, there I see no need for backward compatibility. For example these here: mixxxdj/manual#549 |
Right so lets complete it and then take that as authority on what we deem public and private. Or we build the concept of visibilty into COs outright... |
I added a column in the CO table above. Please have a look. If you think that any COs which are marked with ❌ should be aliased, let's add documentation for it. |
I just googled for these COs. I found the following mentioned to be used in mappings: |
Please have a look at #11980. This superseedes this PR. It's only a partial refactor to keep the diff small.
Alright, I added an alias in that PR.
I struggle to see why any mapping should use that. What does have a mapping to do with vsync? Why not use a regular JS timer? If we don't add an alias, the worst that happens is that the mapping will print a warning on the terminal and some callback is not triggered for that CO. And I'd rather not add documentation for that CO to the manual, because it sounds like an incredible ugly hack to use this from a CO. |
The three mappings I've seen this in they all bind this for polling a CO that would otherwise often (playposition for jogleds, VuMeter, etc). A timer would likely suffice, though there might be more jitter with those. Whether this practice is valid or needed at all, I don't know. I don't know how often these frequently updated COs trigger and whether that causes congestion on the USB connection or within the controller engine. This should probably investigated, though I'd imagine for that to be quite time-consuming... |
At least we recommended mapping developers to use it in the past: https://mixxx.discourse.group/t/how-do-i-use-scripting-to-make-leds-flash/14418/2 |
The advantage of using |
Sure, but no LED should blink with a period of 50ms in practice IMO. that's what |
I propose to remove this (still draft) PR from the 2.4 release milestone. I would really like to get the language fixed but changing these values has already caused regressions in controller configs, so it's high-risk. We have a good track record of moving in the right direction on this issue so it's not critical to make the statement in this release. |
I will bump this to 2.4.1 for now but the scale of the change feels like it might need to bump to 2.5. Open to input / opinions! |
We shouldn't change the behavior in a bugfix release. Especiallly as this requires changes of the Manual, and we've only one common Manual branch for all 2.4.x releases. |
Agree. changed to 2.5 |
I am afraid we have missed the merging slot. Now that the 2.5-deadline has passed I propose to shift this to 2.6. |
This PR is marked as stale because it has been open 90 days with no activity. |
Continuation of #11959 which is part of #11931.
This renames the
[Master]
control group to[Main]
and[MasterOutput]
to[MainOutput]
. Pre-commit failure is expected unless we reformat and fix all controller scripts.