1
0
Fork 0
Commit graph

755 commits

Author SHA1 Message Date
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 1a619c474b Use a vst3-sys fork with support for generics 2022-01-26 15:38:43 +01:00
Robbert van der Helm 04ad429e57 Fix gain plugin parameter ranges 2022-01-26 15:11:23 +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 c3f8b8fb8c Re-export the nih_plug_derive macro
No need to have to use this crate separately.
2022-01-26 12:50:30 +01:00
Robbert van der Helm 41a0f234bd Fix rustdoc link to function 2022-01-26 12:43:09 +01:00
Robbert van der Helm 6edba6555e Generate VST3 entry point functions 2022-01-26 12:37:45 +01:00
Robbert van der Helm a1f0f822ec Add some sort of description to the readme 2022-01-26 12:07:37 +01:00
Robbert van der Helm e782fda3f6 Remove todo about params derive macro
Since we already have this.
2022-01-26 11:58:18 +01:00
Robbert van der Helm 71a910fa75 Add a gain to decibel conversion function 2022-01-26 11:57:47 +01:00
Robbert van der Helm 5cd14492ea Use the new decibel to gain function 2022-01-26 11:49:32 +01:00
Robbert van der Helm 7fe47dfbbd Add a decibel to gain conversion function 2022-01-26 11:48:40 +01:00
Robbert van der Helm 98e326d390 Implement Plugin::params()
I somehow forgot to add this.
2022-01-26 11:41:07 +01:00
Robbert van der Helm d8db0e64cf Use the debug assert macros 2022-01-26 11:38:26 +01:00
Robbert van der Helm 922aa58a7a Export the debug assertion macros 2022-01-26 11:34:47 +01:00
Robbert van der Helm 97cdfd33dd Add more debug assertion macros 2022-01-26 11:30:48 +01:00
Robbert van der Helm 91518b82fd Add debug assertion macros 2022-01-26 11:26:30 +01:00
Robbert van der Helm a40bf1f4f5 Add missing copyright header in gain plugin 2022-01-26 10:56:02 +01:00
Robbert van der Helm 05ae8fd428 Add a very basic gain plugin with some todos 2022-01-25 23:02:15 +01:00
Robbert van der Helm a53fbc11da Add a TODO for audio tail processing 2022-01-25 23:02:13 +01:00
Robbert van der Helm 6d70e30584 Add send and sync constraints to boxed callbacks
Otherwise the Sync constraint on Plugin cannot be satisfied.
2022-01-25 22:46:12 +01:00
Robbert van der Helm fba92cd333 Require a Default instance on plugins
Since that's how they're going to be initialized
2022-01-25 22:38:34 +01:00
Robbert van der Helm 5d0fbcd60d Clamp parameter values in (un)normalization
In case the host or the plugin does something weird.
2022-01-25 22:30:11 +01:00
Robbert van der Helm d7929920c9 Add rounding to integer ranges 2022-01-25 22:26:38 +01:00
Robbert van der Helm 3c950d98d4 Move implementation details to the module's end 2022-01-25 22:23:57 +01:00
Robbert van der Helm 52f80de5dc Add a dummy library for testing the macro 2022-01-25 22:18:55 +01:00
Robbert van der Helm 7065e900a7 Make ParamPtr debug printable 2022-01-25 22:18:10 +01:00
Robbert van der Helm 11c4112361 Mention that this won't implement parameter groups 2022-01-25 20:36:43 +01:00
Robbert van der Helm 5cc9931de6 Not all structs are called Foo 2022-01-25 20:02:58 +01:00
Robbert van der Helm 571dd1f2d4 Implement the Params derive proc macro 2022-01-25 19:55:01 +01:00
Robbert van der Helm 3f2f932a55 Add a function for getting pointers from params
So we don't need to implement this ad-hoc. That would even be impossible
to do correctly inside of the proc macro.
2022-01-25 19:54:27 +01:00
Robbert van der Helm 4cd9c6d3d3 Rename packages to snake case
I much prefer kebab case, but snake case is better here since Rust would
convert it to snake case when used as an identifier anyways and you also
can't use snake case modules without explicit module path attributes.
2022-01-25 12:35:13 +01:00
Robbert van der Helm 6357711783 Add another crate for a proc macro 2022-01-25 12:35:13 +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