-
Notifications
You must be signed in to change notification settings - Fork 280
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
Main Loop Logic Rewrite and QoL Upgrades #589
Comments
If youre having issues, please remember to read the wiki and follow the instructions carefully |
@shitwolfymakes what is the plan for the change? i.e. architecturally. |
That's a great question, and exactly why I settled on the Strangler Fig Pattern. Basically, with each addition of rewritten functionality, a harness added to the main function will preempt the current logic, redirecting to to newly added functionality. The high-level architecture will look like this as the rewrite progresses. CURRENT
DVD REWRITTEN
BR REWRITTEN
MUSIC REWRITTEN
DATA REWRITTEN/COMPLETED
At each stage, rather than replacing the current, highly coupled code, we redirect to the new functionality instead. Once the rewrite is done, we can remove the old system without worry about causing unintended consequences! |
Any update on this ? |
Gonna get back to work on this once we get mtech's stuff merged |
Is your feature request related to a problem? Please describe.
Currently, the main loop execution path is decided by a matrixed truth table of options that tries to account for each combination of settings before executing a rip. This has gotten to the point where modifying core logic, or even predicting it's behavior, is unacceptably complex. To address this, I will be rewriting the core logic in of ARM, implementing the Stranger Fig Pattern to make it available for release in piecemeal fashion.
Describe the solution you'd like
Currently, the logic doesn't know what type of video disk it's working with when determining the steps to go through. This compounds the multiple layers of checks it needs to make, leading to code that is hard to read, debug, and maintain. This rewrite will break each type out into it's own execution path, while maintaining the minimal amount of code duplication that we've already achieved.
This issue aims to track the pull requests that will cover fixing this problem, of which there should be at least 6:
arm.yaml
for DVD, Blu-ray (MLLR-1: Adding placeholder variables #590)Additionally, this rewrite aims to achieve 2 further goals across each step.
Are you able to help code/implement this feature ?
Yes. I will take full responsibility for the development of this
The text was updated successfully, but these errors were encountered: