RustAudio / rust-lv2

A safe, fast, and modular framework to create LV2 plugins, written in Rust
Apache License 2.0
171 stars 23 forks source link

WIP: Implement Options and BufSize extensions #98

Open prokopyl opened 3 years ago

prokopyl commented 3 years ago

This PR implements the Options spec, alongside the BufSize spec for a simple example of an use case.

This is still very much a WIP, as some APIs are not fully implemented or cleaned up, and it still needs some documentation. In the meantime however, you can take a look at options/tests/optionable.rs for a simple example on how to use this. 🙂

Things still on my to-do list before I can mark this as ready for review:

prokopyl commented 3 years ago

@Janonard @PieterPenninckx , if you wanna take a look on this, your feedback is welcome! 🙂

PieterPenninckx commented 3 years ago

FYI: there's also this branch; it may serve as inspiration. Edit: this PR seems to be much more complete.

PieterPenninckx commented 3 years ago

This is actually the first more-than-superficial review I'm doing for this crate. I've found some things that are unrelated to this PR, I'm fixing these in my fork.

prokopyl commented 3 years ago

This is actually the first more-than-superficial review I'm doing for this crate. I've found some things that are unrelated to this PR, I'm fixing these in my fork.

Yes, I've found a few things too while working on this. I've put fixes and reworks on the atom-soundness branch, however it's very WIP, and I'm still experimenting on some things I'm not quite sure how to approach yet, that's why I haven't made a PR yet.

PieterPenninckx commented 3 years ago

I've put fixes and reworks on the atom-soundness branch.

It looks like you've found much more than I have. I'll just document issues in my fork without an effort to actually fix things, so I can avoid duplicate work.

PieterPenninckx commented 3 years ago

I had hoped to add support for LV2 in rsynth this week, which would give me enough background knowledge to review this PR, but alas... I'm afraid I won't be able to review this properly in the upcoming months. Looking at the BackAsSpace trait, I have the gut feeling that the "Space" mechanism for Atoms may need to be reviewed (simplified) in the light of this feature, but I may be wrong.

prokopyl commented 3 years ago

I had hoped to add support for LV2 in rsynth this week, which would give me enough background knowledge to review this PR, but alas... I'm afraid I won't be able to review this properly in the upcoming months. Looking at the BackAsSpace trait, I have the gut feeling that the "Space" mechanism for Atoms may need to be reviewed (simplified) in the light of this feature, but I may be wrong.

@PieterPenninckx Indeed! It took quite a lot of time, but I made many changes, improvements, clarifications and simplifications in the Space APIs in #100 . :slightly_smiling_face:

I will rebase this branch on it, and will remove the Draft tag on this PR when #100 is merged.