-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Add second alternate speed and buttons for alt speed #11187
Conversation
Oh, the buttons are kinda uninspired right now, just 10 degree upward arrow and 10 degree downward arrow. I'm no artist. Showing a 1 and 2 in them sounded worse... -[Unknown] |
df875b9
to
8b2e181
Compare
Cool, will read the code soon. My only immediate objection is that buttons/controls that cycle through more than two settings often feel awkward and confusing to use, and if one of the speeds is super fast can easily skip forward much more than intended by accident trying to toggle back to normal speed for example. |
There's no cycle touch button - there's only two buttons for activating each speed. You can however map a gamepad / keyboard button to toggle between the speeds (same toggle button as before.) If the second speed is disabled (as is true by default), it continues working as before: toggling on and off the first alternative speed. That has never had a touch button, though. So there are now 4 total buttons:
-[Unknown] |
8b2e181
to
d265797
Compare
Ah, I missed that disabling the speeds would remove them from the cycle. That should be alright then as it's easy to set it up with a single alternate speed too. |
Right - I almost created two toggles but it seemed hard to explain in the UI. I think the "while pressed only" behavior is probably what is most logical for the current touch interface and for e.g. trigger buttons. There might be an argument to make any touch button a "toggle button" by making it lock when tapped and unlock when tapped again. -[Unknown] |
What do you think? I'd like to recommend that #11202 add an enum to ConfigValues for the magic numbers, but it doesn't exist yet. -[Unknown] |
Can be used for slow motion or fast motion (esp. if unthrottle is too fast.)
These are a bit strewn about and there are constants that aren't consistently used, which just adds confusion.
For alternate speed, we'll allow separate speeds to be "on" or "off".
In addition to virtual keys for each speed separately.
Much cleaner this way, less repetition.
This allows more flexibility if unthrottle is too fast or too uneven.
Now it looks more like other screens.
d265797
to
0564e9e
Compare
Yeah, sorry for the delay, I'm fine with this. Will just read through it again then merge. |
This refactors a bunch of things along the way. The more user facing things are:
I think this should satisfy the needs in #7981, at least generally. Rather than change unthrottle (which does what it says and is simple), to me it makes more sense to make the alt speed option more versatile as the above.
There's also some more behind the scenes changes:
Moved some config values into ConfigValues.h - a lot of places didn't use enums, or have hidden away enums, and I feel like this will encourage us to write cleaner code (since ConfigValues.h is included far less places.)
All the touch control related settings are now grouped in structs, which makes the code simpler and repeat less. There's still parts that could be better, but at least it's much easier to add a new button now.
Made the touch control visibility page use more consistent UI with touch control layout and fixed a leaked class per checkbox.
Sorts the touch control visibility list as it was probably intended to be sorted (otherwise "Alt speed 1" would be first.)
Removed old pre-0.9.8 or so touch control layout config migration code.
-[Unknown]