Robbert van der Helm
b14dc7eae9
Avoid duplicate units in VST3 parameter strings
2022-01-28 14:06:51 +01:00
Robbert van der Helm
47f84081dd
Use a macro for the null pointer checks
2022-01-28 13:45:17 +01:00
Robbert van der Helm
b9d38f5c39
Implement most of IAudioProcessor
...
Except for the process function itself.
2022-01-28 13:40:47 +01:00
Robbert van der Helm
a34293fbb4
Silence too_many_arguments Clippy lint in wrapper
...
Aside from wrapping everything in another struct we can't really do
anything about this since this is all generated by the VST3 macro.
2022-01-28 13:39:44 +01:00
Robbert van der Helm
fa13371c5f
Allow trailing commas in debug macros
2022-01-28 13:32:37 +01:00
Robbert van der Helm
b91a02baa6
Add a todo and idea for non-parameter persistence
2022-01-28 01:34:36 +01:00
Robbert van der Helm
5e17b2190a
Add null pointer checks to the VST3 wrapper
2022-01-27 22:51:49 +01:00
Robbert van der Helm
91e20f1230
Don't internally use param string IDs in wrapper
...
This avoids a layer of indirection for every parameter lookup using a
hash.
2022-01-27 22:36:46 +01:00
Robbert van der Helm
217b28fdca
Move VST3 categories and class ID to a new trait
...
Makes more sense than having this in either the general plugin trait or
as part of the macro.
2022-01-27 22:13:13 +01:00
Robbert van der Helm
c11abdc77d
Add a processing status for handling reverb tails
2022-01-27 21:03:49 +01:00
Robbert van der Helm
b5636ef556
Implement the rest of IEditController
2022-01-27 19:55:24 +01:00
Robbert van der Helm
9ff881b355
Add functions for previewing parameter conversions
2022-01-27 19:43:19 +01:00
Robbert van der Helm
1f0dbdbbec
Clean up parameter access conditionals
...
I forgot this works as an else if
2022-01-27 19:36:36 +01:00
Robbert van der Helm
338abf7367
Implement IEditController::getParamValueByString()
2022-01-27 19:30:42 +01:00
Robbert van der Helm
d357add75a
Implement most of the VST3 parameter handling
2022-01-27 00:19:50 +01:00
Robbert van der Helm
ad94b44b93
Add lookup functions between strings and values
...
For parameters.
2022-01-27 00:15:11 +01:00
Robbert van der Helm
dfbfc657a8
Add a getter for parameter units from poitners
2022-01-26 23:37:41 +01:00
Robbert van der Helm
186a924104
Implement a JUCE-compatible Rabin fingerprint
2022-01-26 23:35:01 +01:00
Robbert van der Helm
22be850d9e
Implement IPluginFactory2 and IPluginFactory3
2022-01-26 22:23:44 +01:00
Robbert van der Helm
9046cfbe3a
Add a version string constant
2022-01-26 22:20:15 +01:00
Robbert van der Helm
0a67c8e5f4
Correct the VST3 categories string length
2022-01-26 21:40:49 +01:00
Robbert van der Helm
35cf7ffc1d
Implement IComponent
2022-01-26 21:12:13 +01:00
Robbert van der Helm
4014d83a9b
Allow creating VST3 plugin instances
2022-01-26 21:12:02 +01:00
Robbert van der Helm
a959f7a2ad
Add an UTF-16 equivalent for strlcpy()
2022-01-26 21:02:52 +01:00
Robbert van der Helm
2614be26ab
Add an unconditional debug assertion failure macro
2022-01-26 20:55:01 +01:00
Robbert van der Helm
19b51df357
Implement IPluginFactory up to creating instances
2022-01-26 20:05:51 +01:00
Robbert van der Helm
a13263051a
Add a VST3 categories constant for plugins
2022-01-26 19:49:22 +01:00
Robbert van der Helm
dc6db232ed
Pass a CID to the VST3 export macro
...
Seems much less prone to breakage than generating them, since this way
the programmer has full control.
2022-01-26 19:20:39 +01:00
Robbert van der Helm
bd2e0eca0c
Add a strlcpy implementation
2022-01-26 19:18:31 +01:00
Robbert van der Helm
fa782ff938
Add a stub plugin factory implementation
2022-01-26 18:14:54 +01:00
Robbert van der Helm
031407754b
Add name, vendor, and other constants to plugins
2022-01-26 18:14:13 +01:00
Robbert van der Helm
070e68c084
Move nih_plug to the repo's root
...
Makes more sense to have this be on the same level as the workspace
since technically this crate can be used separately.
2022-01-26 12:52:57 +01:00
Robbert van der Helm
736468a510
Move nih-plug to a workspace
2022-01-25 12:23:19 +01:00
Robbert van der Helm
2df0d7453d
Fix library name in copyright headers
2022-01-25 02:19:53 +01:00
Robbert van der Helm
2598e97494
Add the basic plugin API
2022-01-25 02:19:31 +01:00
Robbert van der Helm
e8697d9a74
Redo the parameters without atomics
...
These atomics make things more difficult and they don't solve the main
problem: storing the parameter objects in an easy to use struct while
still allowing hash based access to them from the plugin wrapper. Going
through this new Params trait makes a lot more sense, and with pinning
this should be safe.
2022-01-25 02:17:30 +01:00
Robbert van der Helm
4f501f539e
Implement the rest of the basic parameter UI
2022-01-24 21:12:02 +01:00
Robbert van der Helm
edf9e96975
Rename Normalize to NormalizebleRange
...
To hopefully make the use of trait a bit clearer. This is where higher
kinded types would have been nice.
2022-01-24 21:00:37 +01:00
Robbert van der Helm
64f7dc8148
Add some of the building blocks for param handling
2022-01-24 21:00:37 +01:00
Robbert van der Helm
d748bd62ff
Initial commit
2022-01-24 21:00:37 +01:00