Commit Graph

89 Commits

Author SHA1 Message Date
Xaymar 779b6c55de Update README.md 2025-08-08 06:16:15 +02:00
Xaymar 7593071b9e Add modern C++ style C header include
It does the exact same as all the modern C header includes!
2025-08-08 05:34:16 +02:00
Xaymar ce82058d69 Clean and proper directory structure 2025-08-08 05:33:54 +02:00
Xaymar f32ac9b385 Minor documentation improvements 2025-08-08 05:27:59 +02:00
Xaymar a17e62c097 Support for C98 and C++98
This omits the definition for vst_host_supports_t and vst_effect_supports_t if the compiler doesn't support it. I may replace these with #define's in the future for universal compiler support.
2025-08-08 05:18:23 +02:00
Xaymar 0c87491e6f Document vst_effect_supports_t.conformsToWindowRules 2025-08-08 04:57:34 +02:00
Xaymar cb3952b5f1 Empty field in vst_events_t is likely padding
Based on where things are in the structure this is likely to be a remnant of the past. Can't verify that though.
2025-08-08 04:47:06 +02:00
Xaymar a76aa75260 Define "External" category (#5) 2025-08-08 04:42:50 +02:00
Xaymar 4246e8442c Use README.md as the documentation main page 2025-08-08 04:40:12 +02:00
Xaymar 00a9f2dc53 Effect 0x3B/0x3C: Define virtual key codes
These are probably not all but they are the ones that I could actually make happen.
2025-08-08 04:38:13 +02:00
Xaymar 4b00c75a3f Some documentation updates 2025-08-08 04:15:18 +02:00
Xaymar 93bc195dea 'cinttypes' doesn't exist prior to C++11 2025-08-08 04:09:52 +02:00
Xaymar 45194f82b9 Add @todo tags to anything that needs work 2025-08-08 04:09:12 +02:00
Xaymar bc16fce699 Fix up C99 support again
We still require a C++ compiler that treats C header files as actual C code.
2025-08-08 03:59:29 +02:00
Xaymar 6576c95a74 Add MIDI and MIDI SysEx event structures (#2, #3)
Thanks to a cheap MIDI keyboard I was able to figure out most of the structure with ease.
2025-08-08 03:55:12 +02:00
Xaymar de16483b55 Host 0x17: Query which thread is currently active
Quite useful for threading and memory safety.
2025-08-08 02:54:42 +02:00
Xaymar b5310b8922 Host 0x2D/0x2E/0x2F: Controllable crash/memory corruption via p_ptr
Doesn't appear useful so far.
2025-08-08 02:54:37 +02:00
Xaymar 098f059834 Host 0x1F/0x31: Query current input/output speaker arrangement
Seems to be completely unsupported in VST 2.4 hosts and all prior hosts seem to just return the exact data we output from VST_EFFECT_OPCODE_GET_SPEAKER_ARRANGEMENT.
2025-08-08 02:54:36 +02:00
Xaymar ca9d9de24e Host 0x15/0x16: Query which vst_effect_t is attached to an input/output stream
Basically unsupported in almost all hosts so not very useful for optimization purposes.
2025-08-08 02:54:36 +02:00
Xaymar 596cf21b71 Host 0x13/0x14: Current input/output sample latency 2025-08-08 02:54:35 +02:00
Xaymar 8204f06ca7 Host 0x11/0x12: Current effect sample rate and block size
Some hosts can randomly "forget" to send these updates to the effect and that's why we can ask the host for them. Most modern ones though do properly handle all of this.
2025-08-08 02:54:35 +02:00
Xaymar 64ddb953db Host 0x27: Query current host language
Seems to use a custom format instead of something like ISO 639 which predates VST 2.x by quite a long time. Reinventing the wheel goes back a long time it seems.
2025-08-08 02:54:34 +02:00
Xaymar 5cef1f300a Host 0x29: Retrieves the path of the currently loaded effect
Unsure what this does with container plug-ins. Does it return the container file?
2025-08-08 02:54:34 +02:00
Xaymar 9f1a61b603 Host 0x30: Some kind of path query related programs and banks
Mostly just crashes hosts but in rare cases actually works to retrieve a path to something.
2025-08-08 02:54:33 +02:00
Xaymar ac4572eff4 Host 0x2A: Plug-in requests a full refresh of information
A plug-in may call this if they believe important information has changed such as the number of parameters. This seems to work together with VST_HOST_OPCODE_IO_MODIFIED.
2025-08-08 02:54:33 +02:00
Xaymar 14688491dc Host 0x2B/0x2C: Intended behavior appears to be locking/unlocking
These calls seem to prevent compatible hosts from emitting parameter changes entirely. This is like a file lock where it prevents other processes from modifying things they shouldn't.
2025-08-08 02:54:32 +02:00
Xaymar a140b58016 Initial work towards event handling support (#3)
The VST 2.x API seems to support some sort of event handling functionality used to implement MIDI (#2) and External Processing (#5). The vst_event_t structure is currently unclear.
2025-08-08 02:54:31 +02:00
Xaymar 2551d06b0c Add "editFile" to vst_host_supports_t
This one looked like a function lookup for a LoadLibrary call. Turns out it's an actual support query!
2025-08-08 02:54:31 +02:00
Xaymar e81a1f91e2 Host 0x1E: Request a resize of the window containing our custom editor
The host is not required to accept our request and may ignore it.
2025-08-08 02:54:30 +02:00
Xaymar 0b608bec1f Slightly improve overall documentation 2025-08-08 02:54:30 +02:00
Xaymar e9fcf1408b Host 0x0E -> 0x0D: Missed one of the off-by-1 errors
This explains why my test code using the header wasn't working.
v0.3.4
2025-08-08 02:38:09 +02:00
Xaymar d23a117ecc Add editorconfig file for automatically trimming whitespace 2025-08-08 02:38:09 +02:00
Xaymar c9629ad8d3 Fix all host opcodes being offset by 1 or two v0.3.3 2025-08-08 01:54:21 +02:00
Xaymar 87b3e2bcfc Hopefully fix documentation not updating on push v0.3.2 2025-08-06 05:19:28 +02:00
Xaymar 9dd8de817f Update README 2025-08-06 05:18:17 +02:00
Xaymar 41a24b0f07 Mac OS exclusivity isn't an important thing either 2025-08-06 04:21:22 +02:00
Xaymar 0049af4720 VST version changes aren't important enough to warrant red boxes 2025-08-06 04:17:56 +02:00
Xaymar 35125a732b Various fixes for documentation 2025-08-06 04:14:15 +02:00
Xaymar 21998dbbc0 Fix wrong reference to VST_HOST where we wanted VST_EFFECT 2025-08-06 04:07:08 +02:00
Xaymar fa02ffef09 Fix incorrect type definition in vst.hpp 2025-08-06 04:06:23 +02:00
Xaymar ce354e3824 Fix duplicate definition of VST_EFFECT_OPCODE_43 2025-08-06 04:05:31 +02:00
Xaymar 5e65ee89ca Fix incorrect definition for vst_host_callback_t v0.3.1 2025-08-06 03:56:51 +02:00
Xaymar 3c7322c90d Oops: VST_EFFECT_OPCODE_PARAM_PROPERTIES is actually 0x38
Late night coding while sleepy tends to invite mistakes.
2025-08-06 03:46:49 +02:00
Xaymar 3beabeef6d Add vst.hpp to automatically generated docs 2025-08-06 03:33:52 +02:00
Xaymar 6a1e5be101 Automatically generate documentation for hosting via Github Pages
In addition to the extensive header documentation available lets also have doxygen generate proper HTML for the web.
2025-08-06 03:22:14 +02:00
Xaymar f5779515c2 More documentation improvements 2025-08-06 02:51:57 +02:00
Xaymar 4b0f52863f More documentation improvments 2025-08-06 02:29:41 +02:00
Xaymar b49fb7872d More C99 compat improvements and doxygen support 2025-08-06 00:49:20 +02:00
Xaymar 06245409e8 Improve documentation for speakers and vkey op-codes 2025-08-05 23:56:02 +02:00
Xaymar adc0352d59 Float parameters are sometimes required to be normalized within 0.0 and 1.0 2025-08-05 15:58:38 +02:00