mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
VST3: Updated JUCE's embedded VST3 SDK version to 3.6.13
This commit is contained in:
parent
dc00dde492
commit
0c726918ab
55 changed files with 343 additions and 123 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
This license applies only to files referencing this license,
|
This license applies only to files referencing this license,
|
||||||
for other files of the Software Development Kit the respective embedded license text
|
for other files of the Software Development Kit the respective embedded license text
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,28 @@
|
||||||
# Welcome to VST SDK 3.6.12
|
# Welcome to VST SDK 3.6.x
|
||||||
|
|
||||||
## Table Of Contents
|
## Table Of Contents
|
||||||
|
|
||||||
1. [The VST SDK package](#100)
|
1. [The VST SDK package](#100)
|
||||||
1. [System requirements](#200)
|
1. [System requirements](#200)
|
||||||
1. [About VST Plug-ins in general](#300)
|
1. [About VST Plug-ins in general](#300)
|
||||||
1. [About VST 3](#400)
|
1. [About VST 3](#400)
|
||||||
1. [How to build VST 3](#500)
|
1. [How to build VST 3](#500)
|
||||||
1. [License & Usage guidelines](#600)
|
1. [Contributing](#600)
|
||||||
|
1. [License & Usage guidelines](#700)
|
||||||
|
|
||||||
<div id='100'/>
|
<div id='100'/>
|
||||||
|
|
||||||
## The VST SDK package contains:
|
## The VST SDK package contains
|
||||||
|
|
||||||
- The VST 3 API
|
- The VST 3 API
|
||||||
- VST 3 Implementation Helper Classes
|
- VST 3 Implementation Helper Classes
|
||||||
- AAX, AU and VST 2 wrappers
|
- AAX, AU and VST 2 wrappers
|
||||||
- VST 3 Plug-ins Examples
|
- VST 3 Plug-ins Examples
|
||||||
|
|
||||||
The full VST 3 SDK is available [here!](https://www.steinberg.net/en/company/developers.html). It contains :
|
The full VST 3 SDK is available [here!](https://www.steinberg.net/en/company/developers.html). It contains :
|
||||||
- a VST 3 Plug-in Test Host Application/Validator,
|
|
||||||
- the <b>Steinberg VST 3 Plug-In SDK Licensing Agreement</b> that you have to sign if you want to develop or host VST 3 Plug-Ins.
|
|
||||||
|
|
||||||
|
- a VST 3 Plug-in Test Host Application/Validator,
|
||||||
|
- the **Steinberg VST 3 Plug-In SDK Licensing Agreement** that you have to sign if you want to develop or host VST 3 Plug-Ins.
|
||||||
|
|
||||||
<div id='200'/>
|
<div id='200'/>
|
||||||
|
|
||||||
|
|
@ -33,7 +36,8 @@ Supported OS:
|
||||||
- Linux (Beta version)
|
- Linux (Beta version)
|
||||||
|
|
||||||
Supported IDE:
|
Supported IDE:
|
||||||
- Visual Studio 2015/2017
|
|
||||||
|
- Visual Studio 2015/2017/2019
|
||||||
- minimum Xcode 7
|
- minimum Xcode 7
|
||||||
- Qt Creator
|
- Qt Creator
|
||||||
|
|
||||||
|
|
@ -41,62 +45,79 @@ Supported IDE:
|
||||||
<div id='300'/>
|
<div id='300'/>
|
||||||
|
|
||||||
## About VST Plug-ins in general
|
## About VST Plug-ins in general
|
||||||
|
|
||||||
A VST Plug-in is an audio processing component that is utilized within a host application. This host application provides the audio or/and event streams that are processed by the Plug-in's code. Generally speaking, a VST Plug-in can take a stream of audio data, apply a process to the audio, and return the result to the host application. A VST Plug-in performs its process normally using the processor of the computer. The audio stream is broken down into a series of blocks. The host supplies the blocks in sequence. The host and its current environment control the block-size. The VST Plug-in maintains the status of all its own parameters relating to the running process: The host does not maintain any information about what the Plug-in did with the last block of data it processed.
|
A VST Plug-in is an audio processing component that is utilized within a host application. This host application provides the audio or/and event streams that are processed by the Plug-in's code. Generally speaking, a VST Plug-in can take a stream of audio data, apply a process to the audio, and return the result to the host application. A VST Plug-in performs its process normally using the processor of the computer. The audio stream is broken down into a series of blocks. The host supplies the blocks in sequence. The host and its current environment control the block-size. The VST Plug-in maintains the status of all its own parameters relating to the running process: The host does not maintain any information about what the Plug-in did with the last block of data it processed.
|
||||||
|
|
||||||
From the host application's point of view, a VST Plug-in is a black box with an arbitrary number of inputs, outputs (Event (MIDI) or Audio), and associated parameters. The host needs no implicit knowledge of the Plug-in's process to be able to use it. The Plug-in process can use whatever parameters it wishes, internally to the process, but depending on the capabilities of the host, it can allow the changes to user parameters to be automated by the host.
|
From the host application's point of view, a VST Plug-in is a black box with an arbitrary number of inputs, outputs (Event (MIDI) or Audio), and associated parameters. The host needs no implicit knowledge of the Plug-in's process to be able to use it. The Plug-in process can use whatever parameters it wishes, internally to the process, but depending on the capabilities of the host, it can allow the changes to user parameters to be automated by the host.
|
||||||
|
|
||||||
The source code of a VST Plug-in is platform independent, but the delivery system depends on the platform architecture:
|
The source code of a VST Plug-in is platform independent, but the delivery system depends on the platform architecture:
|
||||||
- On **Windows**, a VST Plug-in is a multi-threaded DLL (Dynamic Link Library).
|
|
||||||
|
- On **Windows**, a VST Plug-in is a multi-threaded DLL (Dynamic Link Library), recently packaged into a folder structur.
|
||||||
- On **Mac OS X**, a VST Plug-in is a Mach-O Bundle
|
- On **Mac OS X**, a VST Plug-in is a Mach-O Bundle
|
||||||
- On **Linux**, a VST Plug-in is a package
|
- On **Linux**, a VST Plug-in is a package
|
||||||
|
|
||||||
To learn more about VST you can subscribe to the [VST Developer Forum](https://sdk.steinberg.net) - check the 3rd Party Developer Support section at [www.steinberg.net](http://www.steinberg.net).
|
To learn more about VST you can subscribe to the [VST Developer Forum](https://sdk.steinberg.net) - check the 3rd Party Developer Support section at [www.steinberg.net](http://www.steinberg.net).
|
||||||
|
|
||||||
---
|
---
|
||||||
<div id='400'/>
|
<div id='400'/>
|
||||||
|
|
||||||
## About VST 3
|
## About VST 3
|
||||||
|
|
||||||
VST 3 is a general rework of the long-serving VST Plug-in interface. It is not compatible with the older VST versions, but it includes some new features and possibilities. We have redesigned the API to make it not only far easier and more reliable for developers to work with, but have also provided completely new possibilities for Plug-ins. These include:
|
VST 3 is a general rework of the long-serving VST Plug-in interface. It is not compatible with the older VST versions, but it includes some new features and possibilities. We have redesigned the API to make it not only far easier and more reliable for developers to work with, but have also provided completely new possibilities for Plug-ins. These include:
|
||||||
|
|
||||||
### 1. Improved Performance with the Silence Flag
|
### 1. Improved Performance with the Silence Flag
|
||||||
|
|
||||||
Processing can optionally be applied to Plug-ins only when audio signals are present on their respective inputs, so VST 3 Plug-ins can apply their processing economically and only when it is needed.
|
Processing can optionally be applied to Plug-ins only when audio signals are present on their respective inputs, so VST 3 Plug-ins can apply their processing economically and only when it is needed.
|
||||||
|
|
||||||
### 2. Multiple Dynamic I/Os
|
### 2. Multiple Dynamic I/Os
|
||||||
VST 3 Plug-ins are no longer limited to a fixed number of inputs and outputs, and their I/O configuration can dynamically adapt to the channel configuration. Side-chains are also very easily realizable. This includes the possibility to deactivate unused buses after loading and even reactivate those when needed. This cleans up the mixer and further helps to reduce CPU load.
|
|
||||||
|
|
||||||
### 3. Sample-accurate Automation
|
VST 3 Plug-ins are no longer limited to a fixed number of inputs and outputs, and their I/O configuration can dynamically adapt to the channel configuration. Side-chains are also very easily realizable. This includes the possibility to deactivate unused buses after loading and even reactivate those when needed. This cleans up the mixer and further helps to reduce CPU load.
|
||||||
VST 3 also features vastly improved parameter automation with sample accuracy and support for ramped automation data, allowing completely accurate and rapid parameter automation changes.
|
|
||||||
|
|
||||||
### 4. Logical Parameter Organization
|
### 3. Sample-accurate Automation
|
||||||
The VST 3 Plug-in parameters are displayed in a tree structure. Parameters are grouped into sections which represent the structure of the Plug-in. Plug-ins can communicate their internal structure for the purpose of overview, but also for some associated functionality (eg. program-lists).
|
|
||||||
|
|
||||||
### 5. Resizeable UI Editor
|
VST 3 also features vastly improved parameter automation with sample accuracy and support for ramped automation data, allowing completely accurate and rapid parameter automation changes.
|
||||||
VST 3 defines a way to allow resizing of the Plug-in editor by a user.
|
|
||||||
|
|
||||||
### 6. Mouse Over Support
|
### 4. Logical Parameter Organization
|
||||||
The Host could ask the Plug-in which parameter is under the mouse.
|
|
||||||
|
The VST 3 Plug-in parameters are displayed in a tree structure. Parameters are grouped into sections which represent the structure of the Plug-in. Plug-ins can communicate their internal structure for the purpose of overview, but also for some associated functionality (eg. program-lists).
|
||||||
|
|
||||||
|
### 5. Resizeable UI Editor
|
||||||
|
|
||||||
|
VST 3 defines a way to allow resizing of the Plug-in editor by a user.
|
||||||
|
|
||||||
|
### 6. Mouse Over Support
|
||||||
|
|
||||||
|
The Host could ask the Plug-in which parameter is under the mouse.
|
||||||
|
|
||||||
### 7. Context Menu Support
|
### 7. Context Menu Support
|
||||||
|
|
||||||
VST 3 defines a way to allow the host to add its own entries in the Plug-in context menu of a specific parameter.
|
VST 3 defines a way to allow the host to add its own entries in the Plug-in context menu of a specific parameter.
|
||||||
|
|
||||||
### 8. Channel Context Information
|
### 8. Channel Context Information
|
||||||
|
|
||||||
A VST 3 Plug-in could access some channel information where it is instantiated: name, color,...
|
A VST 3 Plug-in could access some channel information where it is instantiated: name, color,...
|
||||||
|
|
||||||
### 9. Note Expression
|
### 9. Note Expression
|
||||||
VST 3 defines with Note Expression a new way of event controller editing. The Plug-in is able to break free from the limitations of MIDI controller events by providing access to new VST 3 controller events that circumvent the laws of MIDI and provide articulation information for each individual note (event) in a polyphonic arrangement according to its noteId.
|
|
||||||
|
VST 3 defines with Note Expression a new way of event controller editing. The Plug-in is able to break free from the limitations of MIDI controller events by providing access to new VST 3 controller events that circumvent the laws of MIDI and provide articulation information for each individual note (event) in a polyphonic arrangement according to its noteId.
|
||||||
|
|
||||||
### 10. 3D Support
|
### 10. 3D Support
|
||||||
|
|
||||||
VST 3 supports new speaker configurations like Ambisonic, Atmos, Auro 3D or 22.2.
|
VST 3 supports new speaker configurations like Ambisonic, Atmos, Auro 3D or 22.2.
|
||||||
|
|
||||||
### 11. Factory Concept
|
### 11. Factory Concept
|
||||||
|
|
||||||
VST 3 Plug-in library could export multiple Plug-ins and in this way replaces the shell concept of VST 2 (kPlugCategShell).
|
VST 3 Plug-in library could export multiple Plug-ins and in this way replaces the shell concept of VST 2 (kPlugCategShell).
|
||||||
|
|
||||||
### 12. Support Remote control Representation
|
### 12. Support Remote control Representation
|
||||||
|
|
||||||
VST 3 Plug-in can deliver a specific parameter mapping for remote controls like Nuage.
|
VST 3 Plug-in can deliver a specific parameter mapping for remote controls like Nuage.
|
||||||
|
|
||||||
### 13. Others
|
### 13. Others
|
||||||
|
|
||||||
While designing VST 3, we performed a careful analysis of the existing functionality of VST and rewrote the interfaces from scratch. In doing so, we focused a lot on providing clear interfaces and their documentation in order to avoid usage errors from the deepest possible layer.
|
While designing VST 3, we performed a careful analysis of the existing functionality of VST and rewrote the interfaces from scratch. In doing so, we focused a lot on providing clear interfaces and their documentation in order to avoid usage errors from the deepest possible layer.
|
||||||
Some more features implemented specifically for developers include:
|
Some more features implemented specifically for developers include:
|
||||||
|
|
||||||
- More stable technical Host/Plug-in environment
|
- More stable technical Host/Plug-in environment
|
||||||
- Advanced technical definition of the standard
|
- Advanced technical definition of the standard
|
||||||
- Modular approach
|
- Modular approach
|
||||||
|
|
@ -113,34 +134,46 @@ Some more features implemented specifically for developers include:
|
||||||
## How to build VST3
|
## How to build VST3
|
||||||
|
|
||||||
### Get the source code from GitHub
|
### Get the source code from GitHub
|
||||||
|
|
||||||
<pre>git clone --recursive https://github.com/steinbergmedia/vst3sdk.git
|
<pre>git clone --recursive https://github.com/steinbergmedia/vst3sdk.git
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### Adding VST2 version
|
### Adding VST2 version
|
||||||
|
|
||||||
The VST2 SDK is not part anymore of the VST3 SDK, you have to use an older version of the SDK and copy the VST2_SDK folder into the VST_SDK folder.
|
The VST2 SDK is not part anymore of the VST3 SDK, you have to use an older version of the SDK and copy the VST2_SDK folder into the VST_SDK folder.
|
||||||
In order to build a VST2 version of the Plug-in and a VST3 at the same time, you need to copy the VST2 folder into the VST3 folder, simply run the following commands:
|
In order to build a VST2 version of the Plug-in and a VST3 at the same time, you need to copy the VST2 folder into the VST3 folder, simply run the following commands:
|
||||||
|
|
||||||
- for macOS:
|
- for macOS:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
cd TheFolderWhereYouDownloadTheSDK
|
cd TheFolderWhereYouDownloadTheSDK
|
||||||
./copy_vst2_to_vst3_sdk.sh
|
./copy_vst2_to_vst3_sdk.sh
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
- for Windows:
|
- for Windows:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
cd TheFolderWhereYouDownloadTheSDK
|
cd TheFolderWhereYouDownloadTheSDK
|
||||||
copy_vst2_to_vst3_sdk.bat
|
copy_vst2_to_vst3_sdk.bat
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### Build the examples on Linux
|
### Build the examples on Linux
|
||||||
|
|
||||||
- Create a folder for the build and move to this folder (using cd):
|
- Create a folder for the build and move to this folder (using cd):
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
- Generate the Solution/Projects: provide the path of the Project where CMakeLists.txt is located:
|
- Generate the Solution/Projects: provide the path of the Project where CMakeLists.txt is located:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
cmake ../vst3sdk
|
cmake ../vst3sdk
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
- Now you can build the Plug-in:
|
- Now you can build the Plug-in:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
make
|
make
|
||||||
(or alternatively for example for release)
|
(or alternatively for example for release)
|
||||||
|
|
@ -148,19 +181,25 @@ copy_vst2_to_vst3_sdk.bat
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### Build the examples on macOS
|
### Build the examples on macOS
|
||||||
|
|
||||||
- Create a folder for the build and move to this folder (using cd):
|
- Create a folder for the build and move to this folder (using cd):
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
- Generate the Solution/Projects: provide the path of the Project where CMakeLists.txt is located:
|
- Generate the Solution/Projects: provide the path of the Project where CMakeLists.txt is located:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
For XCode:
|
For XCode:
|
||||||
cmake -GXcode ../vst3sdk
|
cmake -GXcode ../vst3sdk
|
||||||
Without XCode (here debug variant):
|
Without XCode (here debug variant):
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug ../
|
cmake -DCMAKE_BUILD_TYPE=Debug ../
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
- Now you can build the Plug-in (you can use XCode too):
|
- Now you can build the Plug-in (you can use XCode too):
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
xcodebuild
|
xcodebuild
|
||||||
(or alternatively for example for release)
|
(or alternatively for example for release)
|
||||||
|
|
@ -168,16 +207,22 @@ copy_vst2_to_vst3_sdk.bat
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### Build the examples on Windows
|
### Build the examples on Windows
|
||||||
|
|
||||||
- Create a folder for the build and move to this folder (using cd):
|
- Create a folder for the build and move to this folder (using cd):
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
- Generate the Solution/Projects: provide the path of the Project where CMakeLists.txt is located:
|
- Generate the Solution/Projects: provide the path of the Project where CMakeLists.txt is located:
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
cmake.exe -G"Visual Studio 15 2017 Win64" ../vst3sdk
|
cmake.exe -G"Visual Studio 15 2017 Win64" ../vst3sdk
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
- Now you can build the Plug-in (you can use Visual Studio too):
|
- Now you can build the Plug-in (you can use Visual Studio too):
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
msbuild.exe vstsdk.sln
|
msbuild.exe vstsdk.sln
|
||||||
(or alternatively for example for release)
|
(or alternatively for example for release)
|
||||||
|
|
@ -185,15 +230,24 @@ copy_vst2_to_vst3_sdk.bat
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
### Build using cmake-gui
|
### Build using cmake-gui
|
||||||
* start the cmake-gui Application
|
|
||||||
* "Browse Source...": select the folder VST3_SDK
|
- start the cmake-gui Application
|
||||||
* "Browse Build...": select a folder where the outputs (projects/...) will be created. Typically a folder named "build"
|
- "Browse Source...": select the folder VST3_SDK
|
||||||
* you can check the SMTG Options
|
- "Browse Build...": select a folder where the outputs (projects/...) will be created. Typically a folder named "build"
|
||||||
* Press "Configure"
|
- you can check the SMTG Options
|
||||||
* Press "Generate" and the project will be created
|
- Press "Configure"
|
||||||
|
- Press "Generate" and the project will be created
|
||||||
|
|
||||||
---
|
---
|
||||||
<div id='600'/>
|
<div id='600'/>
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
For bug reports and features requests, please visit the [VST Developer Forum](https://sdk.steinberg.net)
|
||||||
|
|
||||||
|
---
|
||||||
|
<div id='700'/>
|
||||||
|
|
||||||
## License & Usage guidelines
|
## License & Usage guidelines
|
||||||
|
|
||||||
More details are found at [www.steinberg.net/sdklicenses_vst3](http://www.steinberg.net/sdklicenses_vst3)
|
More details are found at [www.steinberg.net/sdklicenses_vst3](http://www.steinberg.net/sdklicenses_vst3)
|
||||||
Binary file not shown.
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Welcome to VST SDK 3 base
|
||||||
|
|
||||||
|
Here you can find some helper classes useful for developing VST3 Plug-Ins.
|
||||||
|
|
||||||
|
## License & Usage guidelines
|
||||||
|
More details are found at [www.steinberg.net/sdklicenses_vst3](http://www.steinberg.net/sdklicenses_vst3)
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
@ -43,7 +43,7 @@ namespace Steinberg {
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
Buffer::Buffer ()
|
Buffer::Buffer ()
|
||||||
: buffer (0)
|
: buffer (nullptr)
|
||||||
, memSize (0)
|
, memSize (0)
|
||||||
, fillSize (0)
|
, fillSize (0)
|
||||||
, delta (defaultDelta)
|
, delta (defaultDelta)
|
||||||
|
|
@ -51,7 +51,7 @@ Buffer::Buffer ()
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
Buffer::Buffer (uint32 s, uint8 initVal)
|
Buffer::Buffer (uint32 s, uint8 initVal)
|
||||||
: buffer (0)
|
: buffer (nullptr)
|
||||||
, memSize (s)
|
, memSize (s)
|
||||||
, fillSize (0)
|
, fillSize (0)
|
||||||
, delta (defaultDelta)
|
, delta (defaultDelta)
|
||||||
|
|
@ -67,7 +67,7 @@ Buffer::Buffer (uint32 s, uint8 initVal)
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
Buffer::Buffer (uint32 s)
|
Buffer::Buffer (uint32 s)
|
||||||
: buffer (0)
|
: buffer (nullptr)
|
||||||
, memSize (s)
|
, memSize (s)
|
||||||
, fillSize (0)
|
, fillSize (0)
|
||||||
, delta (defaultDelta)
|
, delta (defaultDelta)
|
||||||
|
|
@ -81,7 +81,7 @@ Buffer::Buffer (uint32 s)
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
Buffer::Buffer (const void* b , uint32 s)
|
Buffer::Buffer (const void* b , uint32 s)
|
||||||
: buffer (0)
|
: buffer (nullptr)
|
||||||
, memSize (s)
|
, memSize (s)
|
||||||
, fillSize (s)
|
, fillSize (s)
|
||||||
, delta (defaultDelta)
|
, delta (defaultDelta)
|
||||||
|
|
@ -100,7 +100,7 @@ Buffer::Buffer (const void* b , uint32 s)
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
Buffer::Buffer (const Buffer& bufferR)
|
Buffer::Buffer (const Buffer& bufferR)
|
||||||
: buffer (0)
|
: buffer (nullptr)
|
||||||
, memSize (bufferR.memSize)
|
, memSize (bufferR.memSize)
|
||||||
, fillSize (bufferR.fillSize)
|
, fillSize (bufferR.fillSize)
|
||||||
, delta (bufferR.delta)
|
, delta (bufferR.delta)
|
||||||
|
|
@ -120,7 +120,7 @@ Buffer::~Buffer ()
|
||||||
{
|
{
|
||||||
if (buffer)
|
if (buffer)
|
||||||
::free (buffer);
|
::free (buffer);
|
||||||
buffer = 0;
|
buffer = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
|
|
@ -302,7 +302,7 @@ bool Buffer::makeHexString (String& result)
|
||||||
unsigned char* data = uint8Ptr ();
|
unsigned char* data = uint8Ptr ();
|
||||||
uint32 bytes = getSize ();
|
uint32 bytes = getSize ();
|
||||||
|
|
||||||
if (data == 0 || bytes == 0)
|
if (data == nullptr || bytes == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
char8* stringBuffer = (char8*)malloc ((bytes * 2) + 1);
|
char8* stringBuffer = (char8*)malloc ((bytes * 2) + 1);
|
||||||
|
|
@ -338,7 +338,7 @@ bool Buffer::makeHexString (String& result)
|
||||||
bool Buffer::fromHexString (const char8* string)
|
bool Buffer::fromHexString (const char8* string)
|
||||||
{
|
{
|
||||||
flush ();
|
flush ();
|
||||||
if (string == 0)
|
if (string == nullptr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
int32 len = strlen8 (string);
|
int32 len = strlen8 (string);
|
||||||
|
|
@ -477,7 +477,7 @@ bool Buffer::setSize (uint32 newSize)
|
||||||
if (newSize > 0)
|
if (newSize > 0)
|
||||||
{
|
{
|
||||||
int8* newBuffer = (int8*) ::realloc (buffer, newSize);
|
int8* newBuffer = (int8*) ::realloc (buffer, newSize);
|
||||||
if (newBuffer == 0)
|
if (newBuffer == nullptr)
|
||||||
{
|
{
|
||||||
newBuffer = (int8*)::malloc (newSize);
|
newBuffer = (int8*)::malloc (newSize);
|
||||||
if (newBuffer)
|
if (newBuffer)
|
||||||
|
|
@ -492,7 +492,7 @@ bool Buffer::setSize (uint32 newSize)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
::free (buffer);
|
::free (buffer);
|
||||||
buffer = 0;
|
buffer = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -501,7 +501,7 @@ bool Buffer::setSize (uint32 newSize)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
::free (buffer);
|
::free (buffer);
|
||||||
buffer = 0;
|
buffer = nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -515,7 +515,7 @@ bool Buffer::setSize (uint32 newSize)
|
||||||
fillSize = memSize;
|
fillSize = memSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (newSize > 0) == (buffer != 0);
|
return (newSize > 0) == (buffer != nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
|
|
@ -582,7 +582,7 @@ void Buffer::take (Buffer& from)
|
||||||
memSize = from.memSize;
|
memSize = from.memSize;
|
||||||
fillSize = from.fillSize;
|
fillSize = from.fillSize;
|
||||||
buffer = from.buffer;
|
buffer = from.buffer;
|
||||||
from.buffer = 0;
|
from.buffer = nullptr;
|
||||||
from.memSize = 0;
|
from.memSize = 0;
|
||||||
from.fillSize = 0;
|
from.fillSize = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -591,7 +591,7 @@ void Buffer::take (Buffer& from)
|
||||||
int8* Buffer::pass ()
|
int8* Buffer::pass ()
|
||||||
{
|
{
|
||||||
int8* res = buffer;
|
int8* res = buffer;
|
||||||
buffer = 0;
|
buffer = nullptr;
|
||||||
memSize = 0;
|
memSize = 0;
|
||||||
fillSize = 0;
|
fillSize = 0;
|
||||||
return res;
|
return res;
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
@ -128,12 +128,12 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
///@{
|
///@{
|
||||||
#define DBPRT0(a) FDebugPrint (a);
|
#define SMTG_DBPRT0(a) FDebugPrint (a);
|
||||||
#define DBPRT1(a, b) FDebugPrint (a, b);
|
#define SMTG_DBPRT1(a, b) FDebugPrint (a, b);
|
||||||
#define DBPRT2(a, b, c) FDebugPrint (a, b, c);
|
#define SMTG_DBPRT2(a, b, c) FDebugPrint (a, b, c);
|
||||||
#define DBPRT3(a, b, c, d) FDebugPrint (a, b, c, d);
|
#define SMTG_DBPRT3(a, b, c, d) FDebugPrint (a, b, c, d);
|
||||||
#define DBPRT4(a, b, c, d, e) FDebugPrint (a, b, c, d, e);
|
#define SMTG_DBPRT4(a, b, c, d, e) FDebugPrint (a, b, c, d, e);
|
||||||
#define DBPRT5(a, b, c, d, e, f) FDebugPrint (a, b, c, d, e, f);
|
#define SMTG_DBPRT5(a, b, c, d, e, f) FDebugPrint (a, b, c, d, e, f);
|
||||||
///@}
|
///@}
|
||||||
|
|
||||||
/** @name Helper functions for the above defined macros.
|
/** @name Helper functions for the above defined macros.
|
||||||
|
|
@ -198,17 +198,17 @@ void* operator new (size_t, int, const char*, int);
|
||||||
#define SMTG_VERIFY_IS(f, r) f;
|
#define SMTG_VERIFY_IS(f, r) f;
|
||||||
#define SMTG_VERIFY_NOT(f, r) f;
|
#define SMTG_VERIFY_NOT(f, r) f;
|
||||||
|
|
||||||
#define DBPRT0(a)
|
#define SMTG_DBPRT0(a)
|
||||||
#define DBPRT1(a, b)
|
#define SMTG_DBPRT1(a, b)
|
||||||
#define DBPRT2(a, b, c)
|
#define SMTG_DBPRT2(a, b, c)
|
||||||
#define DBPRT3(a, b, c, d)
|
#define SMTG_DBPRT3(a, b, c, d)
|
||||||
#define DBPRT4(a, b, c, d, e)
|
#define SMTG_DBPRT4(a, b, c, d, e)
|
||||||
#define DBPRT5(a, b, c, d, e, f)
|
#define SMTG_DBPRT5(a, b, c, d, e, f)
|
||||||
|
|
||||||
#ifndef NEW
|
#ifndef NEW
|
||||||
#define NEW new
|
#define NEW new
|
||||||
#define NEWVEC new
|
#define NEWVEC new
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -223,11 +223,18 @@ void* operator new (size_t, int, const char*, int);
|
||||||
#undef ASSERT
|
#undef ASSERT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define ASSERT SMTG_ASSERT
|
#define ASSERT SMTG_ASSERT
|
||||||
#define WARNING SMTG_WARNING
|
#define WARNING SMTG_WARNING
|
||||||
#define DEBUGSTR SMTG_DEBUGSTR
|
#define DEBUGSTR SMTG_DEBUGSTR
|
||||||
#define VERIFY SMTG_VERIFY
|
#define VERIFY SMTG_VERIFY
|
||||||
#define VERIFY_IS SMTG_VERIFY_IS
|
#define VERIFY_IS SMTG_VERIFY_IS
|
||||||
#define VERIFY_NOT SMTG_VERIFY_NOT
|
#define VERIFY_NOT SMTG_VERIFY_NOT
|
||||||
#define PRINTSYSERROR SMTG_PRINTSYSERROR
|
#define PRINTSYSERROR SMTG_PRINTSYSERROR
|
||||||
|
|
||||||
|
#define DBPRT0 SMTG_DBPRT0
|
||||||
|
#define DBPRT1 SMTG_DBPRT1
|
||||||
|
#define DBPRT2 SMTG_DBPRT2
|
||||||
|
#define DBPRT3 SMTG_DBPRT3
|
||||||
|
#define DBPRT4 SMTG_DBPRT4
|
||||||
|
#define DBPRT5 SMTG_DBPRT5
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
@ -41,9 +41,9 @@
|
||||||
#include "pluginterfaces/base/fvariant.h"
|
#include "pluginterfaces/base/fvariant.h"
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <ctype.h>
|
#include <cctype>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
#include <stdarg.h>
|
#include <cstdarg>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#if SMTG_OS_WINDOWS
|
#if SMTG_OS_WINDOWS
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
This license applies only to files referencing this license,
|
This license applies only to files referencing this license,
|
||||||
for other files of the Software Development Kit the respective embedded license text
|
for other files of the Software Development Kit the respective embedded license text
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Welcome to VST SDK 3 Interfaces
|
||||||
|
|
||||||
|
Here are located all VST interfaces definitions (including VST Component/Controller, UI, Test).
|
||||||
|
|
||||||
|
## License & Usage guidelines
|
||||||
|
|
||||||
|
More details are found at [www.steinberg.net/sdklicenses_vst3](http://www.steinberg.net/sdklicenses_vst3)
|
||||||
|
|
@ -14,13 +14,17 @@
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "pluginterfaces/base/funknown.h"
|
#include "pluginterfaces/base/funknown.h"
|
||||||
#include "pluginterfaces/base/iupdatehandler.h"
|
|
||||||
#include "pluginterfaces/base/icloneable.h"
|
|
||||||
#include "pluginterfaces/base/ibstream.h"
|
#include "pluginterfaces/base/ibstream.h"
|
||||||
|
#include "pluginterfaces/base/icloneable.h"
|
||||||
|
#include "pluginterfaces/base/ipluginbase.h"
|
||||||
|
#include "pluginterfaces/base/iupdatehandler.h"
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
namespace Steinberg {
|
namespace Steinberg {
|
||||||
|
DEF_CLASS_IID (IPluginBase)
|
||||||
|
DEF_CLASS_IID (IPluginFactory)
|
||||||
|
DEF_CLASS_IID (IPluginFactory2)
|
||||||
|
DEF_CLASS_IID (IPluginFactory3)
|
||||||
|
|
||||||
DEF_CLASS_IID (FUnknown)
|
DEF_CLASS_IID (FUnknown)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,7 @@
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------
|
||||||
#if SMTG_OS_MACOS
|
#if SMTG_OS_MACOS
|
||||||
#if !SMTG_PLATFORM_64
|
#pragma pack(pop)
|
||||||
#pragma pack(pop)
|
|
||||||
#endif
|
|
||||||
#elif defined __BORLANDC__
|
#elif defined __BORLANDC__
|
||||||
#pragma -a-
|
#pragma -a-
|
||||||
#elif SMTG_OS_WINDOWS
|
#elif SMTG_OS_WINDOWS
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,15 @@
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------
|
||||||
#if SMTG_OS_MACOS
|
#if SMTG_OS_MACOS
|
||||||
|
#pragma GCC diagnostic ignored "-Wunknown-warning-option"
|
||||||
|
#pragma GCC diagnostic ignored "-Wpragma-pack"
|
||||||
#if SMTG_PLATFORM_64
|
#if SMTG_PLATFORM_64
|
||||||
// no need in packing here
|
#pragma pack(push, 16)
|
||||||
#else
|
#else
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
#endif
|
#endif
|
||||||
|
#pragma GCC diagnostic default "-Wpragma-pack"
|
||||||
|
#pragma GCC diagnostic default "-Wunknown-warning-option"
|
||||||
#elif defined __BORLANDC__
|
#elif defined __BORLANDC__
|
||||||
#pragma -a8
|
#pragma -a8
|
||||||
#elif SMTG_OS_WINDOWS
|
#elif SMTG_OS_WINDOWS
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,15 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// WIN32 AND WIN64
|
// WIN32 AND WIN64 (WINDOWS)
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
#if defined (_WIN32)
|
#if defined (_WIN32)
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// ARM32 AND ARM64 (WINDOWS)
|
||||||
|
#if (defined(_M_ARM64) || defined(_M_ARM))
|
||||||
|
#define SMTG_OS_WINDOWS_ARM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SMTG_OS_LINUX 0
|
#define SMTG_OS_LINUX 0
|
||||||
#define SMTG_OS_MACOS 0
|
#define SMTG_OS_MACOS 0
|
||||||
#define SMTG_OS_WINDOWS 1
|
#define SMTG_OS_WINDOWS 1
|
||||||
|
|
@ -59,7 +66,7 @@
|
||||||
#pragma warning (3 : 4189) // local variable is initialized but not referenced
|
#pragma warning (3 : 4189) // local variable is initialized but not referenced
|
||||||
#pragma warning (3 : 4238) // nonstandard extension used : class rvalue used as lvalue
|
#pragma warning (3 : 4238) // nonstandard extension used : class rvalue used as lvalue
|
||||||
|
|
||||||
#if defined (_WIN64) // WIN64 only
|
#if defined (_WIN64) || defined (_M_ARM64)
|
||||||
#define SMTG_PLATFORM_64 1
|
#define SMTG_PLATFORM_64 1
|
||||||
#else
|
#else
|
||||||
#define SMTG_PLATFORM_64 0
|
#define SMTG_PLATFORM_64 0
|
||||||
|
|
@ -70,12 +77,15 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#define SMTG_CPP11 __cplusplus >= 201103L || _MSC_VER > 1800 || SMTG_INTEL_CXX11_MODE
|
#define SMTG_CPP11 __cplusplus >= 201103L || _MSC_VER > 1600 || SMTG_INTEL_CXX11_MODE
|
||||||
#define SMTG_CPP11_STDLIBSUPPORT SMTG_CPP11
|
#define SMTG_CPP11_STDLIBSUPPORT SMTG_CPP11
|
||||||
#define SMTG_HAS_NOEXCEPT _MSC_VER >= 1900 || (SMTG_INTEL_CXX11_MODE && SMTG_INTEL_COMPILER >= 1300)
|
#define SMTG_HAS_NOEXCEPT _MSC_VER >= 1900 || (SMTG_INTEL_CXX11_MODE && SMTG_INTEL_COMPILER >= 1300)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define SMTG_DEPRECATED_ATTRIBUTE(message) __declspec (deprecated ("Is Deprecated: " message))
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LINUX
|
// LINUX
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
#elif __gnu_linux__
|
#elif __gnu_linux__
|
||||||
#define SMTG_OS_LINUX 1
|
#define SMTG_OS_LINUX 1
|
||||||
#define SMTG_OS_MACOS 0
|
#define SMTG_OS_MACOS 0
|
||||||
|
|
@ -110,6 +120,7 @@
|
||||||
#endif
|
#endif
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Mac and iOS
|
// Mac and iOS
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
#elif __APPLE__
|
#elif __APPLE__
|
||||||
#include <TargetConditionals.h>
|
#include <TargetConditionals.h>
|
||||||
#define SMTG_OS_LINUX 0
|
#define SMTG_OS_LINUX 0
|
||||||
|
|
@ -175,9 +186,9 @@
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#pragma error unknown platform
|
#pragma error unknown platform
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
#if !SMTG_RENAME_ASSERT
|
#if !SMTG_RENAME_ASSERT
|
||||||
#undef WINDOWS
|
#undef WINDOWS
|
||||||
#undef MAC
|
#undef MAC
|
||||||
|
|
@ -206,3 +217,13 @@
|
||||||
#else
|
#else
|
||||||
#define SMTG_NOEXCEPT
|
#define SMTG_NOEXCEPT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Deprecation setting
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
#ifndef SMTG_DEPRECATED_ATTRIBUTE
|
||||||
|
#define SMTG_DEPRECATED_ATTRIBUTE(msg)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SMTG_DEPRECATED_MSG(msg) SMTG_DEPRECATED_ATTRIBUTE(msg)
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -296,7 +296,7 @@ public:
|
||||||
/** Prints the UID to a string (or debug output if string is NULL).
|
/** Prints the UID to a string (or debug output if string is NULL).
|
||||||
\param string is the output string if not NULL.
|
\param string is the output string if not NULL.
|
||||||
\param style can be chosen from the FUID::UIDPrintStyle enumeration. */
|
\param style can be chosen from the FUID::UIDPrintStyle enumeration. */
|
||||||
void print (char8* string = 0, int32 style = kINLINE_UID) const;
|
void print (char8* string = nullptr, int32 style = kINLINE_UID) const;
|
||||||
|
|
||||||
template <size_t N>
|
template <size_t N>
|
||||||
inline explicit FUID (const int8 (&uid)[N])
|
inline explicit FUID (const int8 (&uid)[N])
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ public:
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline IPtr (IPtr<T>&& movePtr) SMTG_NOEXCEPT : ptr (movePtr.take ()) { }
|
inline IPtr (IPtr<T>&& movePtr) SMTG_NOEXCEPT : ptr (movePtr.take ()) { }
|
||||||
|
|
||||||
inline IPtr& operator= (IPtr<I>&& movePtr) SMTG_NOEXCEPT
|
inline IPtr& operator= (IPtr<I>&& movePtr)
|
||||||
{
|
{
|
||||||
if (ptr)
|
if (ptr)
|
||||||
ptr->release ();
|
ptr->release ();
|
||||||
|
|
@ -88,6 +88,16 @@ public:
|
||||||
ptr = movePtr.take ();
|
ptr = movePtr.take ();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
inline IPtr& operator= (IPtr<T>&& movePtr)
|
||||||
|
{
|
||||||
|
if (ptr)
|
||||||
|
ptr->release ();
|
||||||
|
|
||||||
|
ptr = movePtr.take ();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
inline void reset (I* obj = nullptr)
|
inline void reset (I* obj = nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -68,10 +68,11 @@ const CString kFxNetwork = "Fx|Network"; ///< using Network
|
||||||
|
|
||||||
const CString kInstrument = "Instrument"; ///< Effect used as instrument (sound generator), not as insert
|
const CString kInstrument = "Instrument"; ///< Effect used as instrument (sound generator), not as insert
|
||||||
const CString kInstrumentDrum = "Instrument|Drum"; ///< Instrument for Drum sounds
|
const CString kInstrumentDrum = "Instrument|Drum"; ///< Instrument for Drum sounds
|
||||||
|
const CString kInstrumentExternal = "Instrument|External";///< External Instrument (wrapped Hardware)
|
||||||
|
const CString kInstrumentPiano = "Instrument|Piano"; ///< Instrument for Piano sounds
|
||||||
const CString kInstrumentSampler = "Instrument|Sampler"; ///< Instrument based on Samples
|
const CString kInstrumentSampler = "Instrument|Sampler"; ///< Instrument based on Samples
|
||||||
const CString kInstrumentSynth = "Instrument|Synth"; ///< Instrument based on Synthesis
|
const CString kInstrumentSynth = "Instrument|Synth"; ///< Instrument based on Synthesis
|
||||||
const CString kInstrumentSynthSampler = "Instrument|Synth|Sampler"; ///< Instrument based on Synthesis and Samples
|
const CString kInstrumentSynthSampler = "Instrument|Synth|Sampler"; ///< Instrument based on Synthesis and Samples
|
||||||
const CString kInstrumentExternal = "Instrument|External";///< External Instrument (wrapped Hardware)
|
|
||||||
|
|
||||||
const CString kSpatial = "Spatial"; ///< used for SurroundPanner
|
const CString kSpatial = "Spatial"; ///< used for SurroundPanner
|
||||||
const CString kSpatialFx = "Spatial|Fx"; ///< used for SurroundPanner and as insert effect
|
const CString kSpatialFx = "Spatial|Fx"; ///< used for SurroundPanner and as insert effect
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ VST predefines some types like volume, pan, tuning by defining their ranges and
|
||||||
Used by NoteExpressionEvent::typeId and NoteExpressionTypeID::typeId
|
Used by NoteExpressionEvent::typeId and NoteExpressionTypeID::typeId
|
||||||
\see NoteExpressionTypeInfo
|
\see NoteExpressionTypeInfo
|
||||||
*/
|
*/
|
||||||
enum NoteExpressionTypeIDs
|
enum NoteExpressionTypeIDs : uint32
|
||||||
{
|
{
|
||||||
kVolumeTypeID = 0, ///< Volume, plain range [0 = -oo , 0.25 = 0dB, 0.5 = +6dB, 1 = +12dB]: plain = 20 * log (4 * norm)
|
kVolumeTypeID = 0, ///< Volume, plain range [0 = -oo , 0.25 = 0dB, 0.5 = +6dB, 1 = +12dB]: plain = 20 * log (4 * norm)
|
||||||
kPanTypeID, ///< Panning (L-R), plain range [0 = left, 0.5 = center, 1 = right]
|
kPanTypeID, ///< Panning (L-R), plain range [0 = left, 0.5 = center, 1 = right]
|
||||||
|
|
@ -183,7 +183,7 @@ DECLARE_CLASS_IID (INoteExpressionController, 0xB7F8F859, 0x41234872, 0x91169581
|
||||||
/** KeyswitchTypeIDs describes the type of a key switch
|
/** KeyswitchTypeIDs describes the type of a key switch
|
||||||
\see KeyswitchInfo
|
\see KeyswitchInfo
|
||||||
*/
|
*/
|
||||||
enum KeyswitchTypeIDs
|
enum KeyswitchTypeIDs : uint32
|
||||||
{
|
{
|
||||||
kNoteOnKeyswitchTypeID = 0, ///< press before noteOn is played
|
kNoteOnKeyswitchTypeID = 0, ///< press before noteOn is played
|
||||||
kOnTheFlyKeyswitchTypeID, ///< press while noteOn is played
|
kOnTheFlyKeyswitchTypeID, ///< press while noteOn is played
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Flags : clang-format SMTGSequencer
|
||||||
|
// Project : VST SDK
|
||||||
|
//
|
||||||
|
// Category : Validator
|
||||||
|
// Filename : public.sdk/source/vst/testsuite/iplugprovider.h
|
||||||
|
// Created by : Steinberg, 04/2005
|
||||||
|
// Description : VST Test Suite
|
||||||
|
//
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// LICENSE
|
||||||
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
// are permitted provided that the following conditions are met:
|
||||||
|
//
|
||||||
|
// * Redistributions of source code must retain the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer.
|
||||||
|
// * Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
// this list of conditions and the following disclaimer in the documentation
|
||||||
|
// and/or other materials provided with the distribution.
|
||||||
|
// * Neither the name of the Steinberg Media Technologies nor the names of its
|
||||||
|
// contributors may be used to endorse or promote products derived from this
|
||||||
|
// software without specific prior written permission.
|
||||||
|
//
|
||||||
|
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
// IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
|
||||||
|
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||||||
|
// OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
// OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "pluginterfaces/base/istringresult.h"
|
||||||
|
#include "pluginterfaces/vst/ivstcomponent.h"
|
||||||
|
#include "pluginterfaces/vst/ivsteditcontroller.h"
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
namespace Steinberg {
|
||||||
|
namespace Vst {
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
/** Test Helper.
|
||||||
|
* \ingroup TestClass
|
||||||
|
*
|
||||||
|
* This class provides access to the component and the controller of a plug-in when running a unit
|
||||||
|
* test (see ITest).
|
||||||
|
* You get this interface as the context argument in the ITestFactory::createTests method.
|
||||||
|
*/
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
class ITestPlugProvider : public FUnknown
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
/** get the component of the plug-in.
|
||||||
|
*
|
||||||
|
* The reference count of the component is increased in this function and you need to call
|
||||||
|
* releasePlugIn when done with the component.
|
||||||
|
*/
|
||||||
|
virtual IComponent* PLUGIN_API getComponent () = 0;
|
||||||
|
/** get the controller of the plug-in.
|
||||||
|
*
|
||||||
|
* The reference count of the controller is increased in this function and you need to call
|
||||||
|
* releasePlugIn when done with the controller.
|
||||||
|
*/
|
||||||
|
virtual IEditController* PLUGIN_API getController () = 0;
|
||||||
|
/** release the component and/or controller */
|
||||||
|
virtual tresult PLUGIN_API releasePlugIn (IComponent* component,
|
||||||
|
IEditController* controller) = 0;
|
||||||
|
/** get the sub categories of the plug-in */
|
||||||
|
virtual tresult PLUGIN_API getSubCategories (IStringResult& result) const = 0;
|
||||||
|
/** get the component UID of the plug-in */
|
||||||
|
virtual tresult PLUGIN_API getComponentUID (FUID& uid) const = 0;
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
static const FUID iid;
|
||||||
|
};
|
||||||
|
|
||||||
|
DECLARE_CLASS_IID (ITestPlugProvider, 0x86BE70EE, 0x4E99430F, 0x978F1E6E, 0xD68FB5BA)
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------
|
||||||
|
} // Vst
|
||||||
|
} // Steinberg
|
||||||
|
|
@ -23,12 +23,12 @@ namespace Steinberg {
|
||||||
namespace Vst {
|
namespace Vst {
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
#ifndef kVstVersionString
|
#ifndef kVstVersionString
|
||||||
#define kVstVersionString "VST 3.6.12" ///< SDK version for PClassInfo2
|
#define kVstVersionString "VST 3.6.13" ///< SDK version for PClassInfo2
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define kVstVersionMajor 3
|
#define kVstVersionMajor 3
|
||||||
#define kVstVersionMinor 6
|
#define kVstVersionMinor 6
|
||||||
#define kVstVersionSub 12
|
#define kVstVersionSub 13
|
||||||
|
|
||||||
// this allows to write things like: #if VST_VERSION >= 0x030500 // note that 3.10.0 is 0x030a00
|
// this allows to write things like: #if VST_VERSION >= 0x030500 // note that 3.10.0 is 0x030a00
|
||||||
#define VST_VERSION ((kVstVersionMajor << 16) | (kVstVersionMinor << 8) | kVstVersionSub)
|
#define VST_VERSION ((kVstVersionMajor << 16) | (kVstVersionMinor << 8) | kVstVersionSub)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Welcome to VST SDK 3 public_sdk
|
||||||
|
|
||||||
|
Here are located:
|
||||||
|
|
||||||
|
- helper classes implementing VST3 Interfaces
|
||||||
|
- samples of VST3 hosting and VST3 Plug-Ins
|
||||||
|
- AAX Wrapper
|
||||||
|
- AU Wrapper
|
||||||
|
- AUv3 Wrapper
|
||||||
|
- VST2 Wrapper
|
||||||
|
- InterAppAudio
|
||||||
|
|
||||||
|
## License & Usage guidelines
|
||||||
|
|
||||||
|
More details are found at [www.steinberg.net/sdklicenses_vst3](http://www.steinberg.net/sdklicenses_vst3)
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
@ -52,6 +52,7 @@
|
||||||
#include "pluginterfaces/vst/ivstplugview.h"
|
#include "pluginterfaces/vst/ivstplugview.h"
|
||||||
#include "pluginterfaces/vst/ivstprefetchablesupport.h"
|
#include "pluginterfaces/vst/ivstprefetchablesupport.h"
|
||||||
#include "pluginterfaces/vst/ivstrepresentation.h"
|
#include "pluginterfaces/vst/ivstrepresentation.h"
|
||||||
|
#include "pluginterfaces/vst/ivsttestplugprovider.h"
|
||||||
#include "pluginterfaces/vst/ivstunits.h"
|
#include "pluginterfaces/vst/ivstunits.h"
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
|
|
@ -127,6 +128,9 @@ DEF_CLASS_IID (IMidiLearn)
|
||||||
DEF_CLASS_IID (IPlugInterfaceSupport)
|
DEF_CLASS_IID (IPlugInterfaceSupport)
|
||||||
DEF_CLASS_IID (IVst3WrapperMPESupport)
|
DEF_CLASS_IID (IVst3WrapperMPESupport)
|
||||||
|
|
||||||
|
//----VST 3.6.13--------------------------------
|
||||||
|
DEF_CLASS_IID (ITestPlugProvider)
|
||||||
|
|
||||||
//------------------------------------------------------------------------
|
//------------------------------------------------------------------------
|
||||||
} // Vst
|
} // Vst
|
||||||
} // Steinberg
|
} // Steinberg
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
//
|
//
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// LICENSE
|
// LICENSE
|
||||||
// (c) 2018, Steinberg Media Technologies GmbH, All Rights Reserved
|
// (c) 2019, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
// Redistribution and use in source and binary forms, with or without modification,
|
||||||
// are permitted provided that the following conditions are met:
|
// are permitted provided that the following conditions are met:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue