-
-
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
GSoC 2020: Mixxx Macros [Moved] #2989
Conversation
* Avoid copy constructors in MacroManager constructor * Use ChannelHandle instead of plain int * Convert interleaved stereo positions to frame positions for Macro saving
It is done that way in the whole codebase, and the previous version created nasty bugs when the local copy went out of scope.
Looks good again. Also in terms of features and behavior I would deem the core mergable now, so I will go into separating it. Would also appreciate a review from @ronso0 concerning the skin stuff :) |
Should I remove the skin stuff from this PR or should I split it up and keep this PR as a part of history, sort of? |
So I gave this a try (with the GUI controls only) and like to share my thoughts on the UX and GUI.
|
I think that should be included here to allow using it without controllers even when the styling isn't complete. |
My point is that I want to merge the core functionality ASAP without any GUI first to avoid further conflicts and piling up of diffs. So I need to separate them out somehow. Since this PR already contains tons of comments, I think it would be good to move the GUI stuff to a new PR based on this one.
Yes sounds good - similar to the text fields in the library. |
Oh right, the pause icon is not really adequate here. Please read the control specification linked at the top to understand the behavior.
Stopping a Macro is not a common use-case - think of it more like an "abort". Usually you enable it and let it do its thing. That's why that functionality doesn't need to be very accessible.
Yeah, that title was there only for testing. |
I am very sorry that this is now laying dormant for so long. Unfortunately, university started back up right after GSoC, so I wasn't able to bring it to a close then. The biggest issue is that I cannot simply take a spare hour to polish this up, as I have to work myself into the code again, so I will have to allocate multiple days at some point. Nevertheless, the core is basically finished, so I would then move all the GUI stuff out of this PR to finally merge this and make the controls already available for controller mapping while integrating the visuals later. |
I would be fine merging the backend of this even if we are uncertain about the ControlObject APIs. IMO we don't need all those details figured out until we make a GUI and making the GUI will help us figure out the requirements. |
This PR is marked as stale because it has been open 90 days with no activity. |
Alright, I am back hoping to make some progress as I have some spare time this week, considering I would like to use this feature myself, too :) |
One little test still failing, otherwise looks fine |
21c8816
to
58a96f2
Compare
e0f2705
to
0044c43
Compare
Superceded by other PRs now. |
This is my main contribution for Google Summer of Code 2020. 1af3280 is the last commit that is officially part of GSoC.
To test it, please refer to the Control Specification and have a look at the usage instructions in the blog post.
Overview
This Pull Request is a continuation of #2873 and is supported by other Pull Requests of mine, such as #2980 (for database tests) and #2969 (for the MacroManager, which has been disbanded in the late stages of the project). I also improved some documentation on classes while trying to understand them as seen and merged in #2885 #2925 #2997. Other Pull Requests of mine in the time period of GSoC are often tangientally related contributions that helped me get a better understanding of Mixxx as a whole.
For technical documentation, design and a detailed work log visit the project wiki page.
Features
Core
GUI
Fixes
GotoAndStop
) are not properly recorded sinceprocess
isn't calledFuture considerations