1
0
Fork 0
Commit graph

167 commits

Author SHA1 Message Date
Robbert van der Helm
ec452bd41d Also move state deserialization to a function 2022-03-02 16:00:11 +01:00
Robbert van der Helm
7a3d3b8c8e Move state serialization to a helper function
So we can reuse it for the CLAP wrapper.
2022-03-02 15:49:40 +01:00
Robbert van der Helm
bc2332801c Implement the CLAP audio ports extension 2022-03-02 15:16:58 +01:00
Robbert van der Helm
70c81642a5 Implement CLAP audio ports config extension 2022-03-02 14:57:30 +01:00
Robbert van der Helm
78b815fede Add consistent null pointer checks to CLAP wrapper
Just like we do for the VST3 wrapper.
2022-03-02 14:25:26 +01:00
Robbert van der Helm
5b369f6ab5 Re-introduce destructuring assignments
Now that that's landed on the stable compiler.
2022-03-02 02:03:57 +01:00
Robbert van der Helm
29c1b5e5d5 Clear input events in CLAP wrapper 2022-03-02 00:38:25 +01:00
Robbert van der Helm
69a085ddad Handle MIDI events for CLAP 2022-03-02 00:29:50 +01:00
Robbert van der Helm
0d359c344a Fix CLAP step count handling 2022-03-02 00:04:33 +01:00
Robbert van der Helm
37e88d063f Change bypassed Enabled label to Not Bypassed
To remove ambiguity.
2022-03-01 23:55:33 +01:00
Robbert van der Helm
57ed66f8f6 Implement basic CLAP audio processing 2022-03-01 23:50:10 +01:00
Robbert van der Helm
3bd83ca55a Implement CLAP input parameter handling 2022-03-01 19:31:16 +01:00
Robbert van der Helm
a58c796fc0 Add an output slices field to Buffer 2022-03-01 15:43:13 +01:00
Robbert van der Helm
6ded3d6f11 Use the thread check extension in the CLAP wrapper 2022-03-01 13:47:06 +01:00
Robbert van der Helm
e5edbac2b4 Add comments for potential parameter quirks 2022-03-01 02:15:23 +01:00
Robbert van der Helm
5f1ebca6e6 Implement clap_plugin_params::get_value() 2022-03-01 02:00:12 +01:00
Robbert van der Helm
ae3c00d069 Implement CLAP parmater info 2022-03-01 01:54:04 +01:00
Robbert van der Helm
0fd80330bb Move parameter step count to ParamPtr 2022-03-01 01:53:48 +01:00
Robbert van der Helm
1c4a5bc4da Add stubs for the CLAP params extension 2022-03-01 01:27:01 +01:00
Robbert van der Helm
af77d45877 Add a Send+Sync wrapper for CLAP object pointers
We'll need this for the extensions.
2022-02-28 20:39:15 +01:00
Robbert van der Helm
12075b1a24 Rename main CLAP plugin wrapper struct to Wrapper 2022-02-28 20:25:49 +01:00
Robbert van der Helm
2750b2a6ad Implement the event loop for CLAP
It cannot yet handle any tasks though.
2022-02-28 20:05:48 +01:00
Robbert van der Helm
4ad972ea23 Add stubs for a CLAP ProcessContext implementation
And the `clap_plugin::active()` function.
2022-02-28 19:45:41 +01:00
Robbert van der Helm
41663a404a Change VST3 wrapper trait bounds to Vst3Plugin
To be consistent with the CLAP wrapper
2022-02-28 19:21:14 +01:00
Robbert van der Helm
6d1e581c26 Partially implement clap_plugin 2022-02-28 19:16:03 +01:00
Robbert van der Helm
0511053b3b Add stubs for the clap_plugin methods 2022-02-28 18:55:33 +01:00
Robbert van der Helm
2e6faaa324 Move plugin descriptor to its own module
Because we also need this in the clap_plugin implementation.
2022-02-28 18:44:03 +01:00
Robbert van der Helm
32a640acf7 Create a clap_plugin instance stub 2022-02-28 18:27:57 +01:00
Robbert van der Helm
0b0876e4a5 Remove entry point debug prints 2022-02-28 18:17:01 +01:00
Robbert van der Helm
560d5fd78f Build the CLAP plugin descriptor
This requires a _lot_ of CStrings.
2022-02-28 17:46:20 +01:00
Robbert van der Helm
e718bbd0a4 Capitalize the FACTORY lazy static
To stop the linters from complaining.
2022-02-28 17:30:21 +01:00
Robbert van der Helm
089f1589bf Add the remaining CLAP factory stubs 2022-02-28 16:53:31 +01:00
Robbert van der Helm
31e2480458 Begin clap objects with vtables for pointer casts 2022-02-28 16:50:37 +01:00
Robbert van der Helm
17b51c8920 Remove function pointer transmutes 2022-02-28 16:46:06 +01:00
Robbert van der Helm
0609f89df6 Create a factory stub from the entry point macro
From this point on we should no longer need any of these ugly macros.
2022-02-28 16:31:49 +01:00
Robbert van der Helm
51d7532b87 Add some more use path safety for the clap export 2022-02-28 15:48:26 +01:00
Robbert van der Helm
56c1545196 Add a basic nih_export_clap!() macro
This does not do anything useful yet.
2022-02-28 14:45:31 +01:00
Robbert van der Helm
b209c9caf3 Move the event loop to its own module
Now that the context module is becoming larger and larger.
2022-02-28 12:57:01 +01:00
Robbert van der Helm
0675feb54b Keep a reference to WrapperView in WrapperInner 2022-02-27 00:51:41 +01:00
Robbert van der Helm
8ddad4e893 Store the IPlugFrame instance 2022-02-27 00:51:41 +01:00
Robbert van der Helm
95f0183d27 Add VST3 smart pointers for regular objects 2022-02-27 00:51:41 +01:00
Robbert van der Helm
dcca3f8bf4 Fix events not working in release builds 2022-02-15 23:11:50 +01:00
Robbert van der Helm
4f0e2b70b5 Rework EnumParam to be a whole lot less sketchy
Now it no longer needs to do any unsound type punning. The internal
parameter that the wrapper has access to has been completely type
erased, and only the outer parameter knows about enum T. This also gets
rid of strum and replaces it with a custom trait.
2022-02-14 15:34:46 +01:00
Robbert van der Helm
cf0fb039b0 Add todo about enum value serialization 2022-02-14 02:29:08 +01:00
Robbert van der Helm
39e8dfc83c Add somewhat shady enum parameters 2022-02-14 02:04:17 +01:00
Robbert van der Helm
d878fd692a Prefix all marker fields with underscores 2022-02-13 22:58:51 +01:00
Robbert van der Helm
ef4c2ad7f9 Add missing #[cfg(test)] 2022-02-13 16:14:26 +01:00
Robbert van der Helm
7d3beb174e Simplify ScopedFtz 2022-02-13 13:51:02 +01:00
Robbert van der Helm
e7c3e19519 Add (miri) tests for {u16,}strlcpy() 2022-02-13 13:04:19 +01:00
Robbert van der Helm
a70edc8105 Remove now-unnecessary unsafe blocks 2022-02-13 12:47:14 +01:00