Robbert van der Helm
f18c92b3b4
Support parameter groups for CLAP
2022-03-16 17:15:33 +01:00
Robbert van der Helm
ce85874340
Implement the CLAP tail extension
2022-03-15 22:28:26 +01:00
Robbert van der Helm
1e9fdeddfb
Don't report supporting MIDI and expression events
...
Since currently these would just get thrown out anyways.
2022-03-15 22:18:37 +01:00
Robbert van der Helm
69e4bc9156
Implement the CLAP note ports extension
2022-03-15 22:16:50 +01:00
Robbert van der Helm
f53f6829f0
Implement the CLAP event filter extension
2022-03-15 22:08:29 +01:00
Robbert van der Helm
b95c833352
Don't handle CLAP modulation events
...
This would require special handling. Modulation acts as an absolute
offset for the current parameter value, not as a relative adjustment to
that value.
2022-03-15 21:26:11 +01:00
Robbert van der Helm
9232f8a51e
Derive Debug and Clone for CLAP output events
2022-03-15 18:53:35 +01:00
Robbert van der Helm
ccc8088218
Update for CLAP 0.23
2022-03-15 18:47:29 +01:00
Robbert van der Helm
6fe967f65e
Implement parameter change notifications for CLAP
2022-03-13 18:30:21 +01:00
Robbert van der Helm
87e447ab25
Mention potential race condition in CLAP events
2022-03-11 14:33:43 +01:00
Robbert van der Helm
f98ba70764
Comment on the CLAP gesture handling
2022-03-11 13:27:23 +01:00
Robbert van der Helm
7339e8e956
Include CLAP_EVENT_SHOULD_RECORD for gestures
...
Apparently this is what you're supposed to do.
2022-03-11 13:03:26 +01:00
Robbert van der Helm
c1ca97c78c
Fix false positive warning in CLAP GUI parameters
2022-03-11 00:49:34 +01:00
Robbert van der Helm
246c319bbf
Implement automation gestures for CLAP
2022-03-11 00:14:39 +01:00
Robbert van der Helm
5d3527c5c2
Also implement sample accurate automation for VST3
2022-03-10 23:39:58 +01:00
Robbert van der Helm
b41b4ef725
Implement sample accurate automation for CLAP
2022-03-10 20:14:42 +01:00
Robbert van der Helm
b9412657c1
Fix allocation error from thread locals
2022-03-08 14:07:29 +01:00
Robbert van der Helm
37e1b9523b
Optionally disallow allocations in reset function
2022-03-08 00:46:17 +01:00
Robbert van der Helm
70d3b5d557
Add a reset function to the plugin trait
...
This is used as part of CLAP 0.19/0.20, and we can just always call it
after the initialize function to stay consistent for VST3 plugins.
2022-03-08 00:35:55 +01:00
Robbert van der Helm
10ced981bd
Remove todos about fixing skewed discrete ranges
...
Because those have been removed.
2022-03-08 00:27:25 +01:00
Robbert van der Helm
8ee380864c
Update for CLAP 0.20
2022-03-08 00:21:51 +01:00
Robbert van der Helm
79ab0cd7ed
Add the special win32-dpi-aware feature on Windows
2022-03-05 16:02:52 +01:00
Robbert van der Helm
9267a8371c
Add DPI scaling support
...
That hopefully works.
2022-03-05 13:37:35 +01:00
Robbert van der Helm
e2605c8cee
Add transport information for VST3 and CLAP
...
This is available through the process context.
2022-03-04 15:05:00 +01:00
Robbert van der Helm
99f97978a9
Reorder ProcessContext methods
...
When we'll add more things here the more common getters should come
first and less common operations like changing latency should come last.
2022-03-04 13:22:58 +01:00
Robbert van der Helm
80457ac0f9
Fix doc links after prelude migration
2022-03-03 23:30:29 +01:00
Robbert van der Helm
4c0b07c578
💥 Move re-exports to a prelude module
...
So you can import everything at once, because you're likely going to
need at least 90% of it anyways.
2022-03-03 23:23:51 +01:00
Robbert van der Helm
f581294d7b
Update rustdoc formatting for links
...
Apparently it showed this text verbatim, and not in monospace.
2022-03-03 23:05:12 +01:00
Robbert van der Helm
542012aa0e
Request restart for latency change when processing
...
Calling this change function seems to work fine, but apparently you're
supposed to do it this way.
2022-03-03 21:58:40 +01:00
Robbert van der Helm
80b1bf12f2
Use AtomicRefCell for all uncontested locks
...
Since it would be a bug if those locks were somehow contested.
2022-03-03 21:21:08 +01:00
Robbert van der Helm
184355a886
Delay CLAP host extension query to init()
...
Or the CLAP example host will get very mad at us.
2022-03-03 21:09:12 +01:00
Robbert van der Helm
27570be4a6
Implement platform-specific CLAP GUI extensions
2022-03-03 18:29:37 +01:00
Robbert van der Helm
b5993c1bb8
Add a CLAP GuiContext for sending param changes
2022-03-03 17:47:41 +01:00
Robbert van der Helm
a4930dc887
Add parameter change outputs for CLAP
...
But without any way to send them, at least for now.
2022-03-03 17:21:32 +01:00
Robbert van der Helm
8f92669a47
Keep track of the processing status
2022-03-03 17:03:52 +01:00
Robbert van der Helm
de4921c033
Move CLAP input event handling to a function
2022-03-03 16:58:57 +01:00
Robbert van der Helm
5766f037b2
Implement the general CLAP GUI extension
2022-03-03 15:52:10 +01:00
Robbert van der Helm
91f2f49fd3
Create stubs for the CLAP editor
2022-03-03 15:40:16 +01:00
Robbert van der Helm
87830abdf6
Store a reference to the wrapper on the wrapper
2022-03-03 15:13:36 +01:00
Robbert van der Helm
6d63d3f095
Rename wrapper: 👏 :plugin to *::wrapper
...
To match the struct name.
2022-03-03 15:08:14 +01:00
Robbert van der Helm
4ceb0efdc4
Use Arc instead of Box for the wrapper
...
We'll need this for the GuiContext.
2022-03-03 15:06:47 +01:00
Robbert van der Helm
d1840b8d86
Move Box creation to the CLAP wrapper
...
So the new->destroy pair makes more sense
2022-03-03 15:01:28 +01:00
Robbert van der Helm
cd070ad876
Remove todo about latency not being implemented
2022-03-03 14:42:17 +01:00
Robbert van der Helm
4eb35ed585
Implement the CLAP latency extension
2022-03-03 00:46:49 +01:00
Robbert van der Helm
c3efc81957
Remove old todo
2022-03-03 00:11:12 +01:00
Robbert van der Helm
41ee117bfa
Prepent CLAP states with the length
...
To avoid having to read in chunks.
2022-03-02 22:25:10 +01:00
Robbert van der Helm
8cc216dc02
Actually support the state extension
...
That seems sort of useful, you know?
2022-03-02 16:26:47 +01:00
Robbert van der Helm
7e9eadfc64
Implement state handling for CLAP
2022-03-02 16:25:30 +01:00
Robbert van der Helm
ec452bd41d
Also move state deserialization to a function
2022-03-02 16:00:11 +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
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
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
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
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
560d5fd78f
Build the CLAP plugin descriptor
...
This requires a _lot_ of CStrings.
2022-02-28 17:46:20 +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
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