7
45
Fork
You've already forked nice-plug
22

Switch from vst3-sys to vst3 crate #28

Closed
davemollen wants to merge 0 commits from davemollen/nice-plug:main into main
pull from: davemollen/nice-plug:main
merge into: RustAudio:main
RustAudio:main
RustAudio:resizing
RustAudio:dev
RustAudio:standalone_fixes
RustAudio:FoobarIT/main
RustAudio:fixes
RustAudio:egui_3rd_party
RustAudio:vizia_baseview_update
RustAudio:egui_32
RustAudio:softbuffer
RustAudio:byo_gui_examples
RustAudio:raw_graphics_examples
Contributor
Copy link

I have moved this PR from the nih-plug repository to here. I have gone through Micah's comments over there.
I think a thorough review of these changes is still needed. A big chunk of this is from Micah's draft PR. All I did was try and get that to the finish line.

Some additional comments:

  • VirtualKeyCode parsing was recently added with this PR: #9. The vst3 crate also defines VirtualKeyCodes_ and KeyModifier_, and these are automatically generated. So I think it would be cleaner to use these bindings instead. But I left this out because changing this would probably be a breaking change.
  • The RunLoopEventHandler struct contained this comment:
/// Allow handling tasks on the host's GUI thread on Linux. This doesn't need to be a separate
/// struct, but vst3-sys does not let us implement interfaces conditionally and the interface is
/// only exposed when compiling on Linux. The struct will register itself when calling
/// [`RunLoopEventHandler::new()`] and it will unregister itself when it gets dropped.

According to this comment this struct could be redundant because we replaced the vst3-sys crate. I kept it in because I think it's actually nice to have this scoped to a separate struct. Since it's a linux only thing, and only then deals with the IEventHandler. But this comment might still be something to consider.

I have moved this PR from the nih-plug repository to here. I have gone through Micah's comments over there. I think a thorough review of these changes is still needed. A big chunk of this is from [Micah's draft PR](https://github.com/robbert-vdh/nih-plug/pull/243). All I did was try and get that to the finish line. Some additional comments: - VirtualKeyCode parsing was recently added with this PR: https://codeberg.org/RustAudio/nice-plug/pulls/9. The vst3 crate also defines `VirtualKeyCodes_` and `KeyModifier_`, and these are automatically generated. So I think it would be cleaner to use these bindings instead. But I left this out because changing this would probably be a breaking change. - The `RunLoopEventHandler` struct contained this comment: ``` /// Allow handling tasks on the host's GUI thread on Linux. This doesn't need to be a separate /// struct, but vst3-sys does not let us implement interfaces conditionally and the interface is /// only exposed when compiling on Linux. The struct will register itself when calling /// [`RunLoopEventHandler::new()`] and it will unregister itself when it gets dropped. ``` According to this comment this struct could be redundant because we replaced the vst3-sys crate. I kept it in because I think it's actually nice to have this scoped to a separate struct. Since it's a linux only thing, and only then deals with the IEventHandler. But this comment might still be something to consider.

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.
No reviewers
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
RustAudio/nice-plug!28
Reference in a new issue
RustAudio/nice-plug
No description provided.
Delete branch "davemollen/nice-plug:main"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?