mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-09 23:34:20 +00:00
VST3: Update SDK to 3.7.12
This commit is contained in:
parent
c49fe0b6be
commit
9b3a513ae3
59 changed files with 1455 additions and 386 deletions
|
|
@ -674,6 +674,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -721,6 +722,8 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
@ -3191,6 +3194,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -3238,6 +3242,8 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
|
|||
|
|
@ -914,6 +914,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3498,6 +3501,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3541,6 +3545,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1603,6 +1603,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -5082,6 +5085,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -5211,6 +5217,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -914,6 +914,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3498,6 +3501,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3541,6 +3545,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1603,6 +1603,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -5082,6 +5085,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -5211,6 +5217,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -629,6 +629,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -676,6 +677,8 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
@ -2829,6 +2832,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -2876,6 +2880,8 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
|
|||
|
|
@ -874,6 +874,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3070,6 +3073,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3113,6 +3117,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1420,6 +1420,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -4440,6 +4443,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -4569,6 +4575,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -662,6 +662,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -709,6 +710,8 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
@ -3015,6 +3018,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -3062,6 +3066,8 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
|
|||
|
|
@ -882,6 +882,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3250,6 +3253,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3293,6 +3297,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1495,6 +1495,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -4716,6 +4719,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -4845,6 +4851,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -882,6 +882,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3250,6 +3253,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3293,6 +3297,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1495,6 +1495,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -4716,6 +4719,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -4845,6 +4851,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -633,6 +633,7 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -680,6 +681,8 @@ add_library( ${BINARY_NAME}
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
@ -2913,6 +2916,7 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ftypes.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknownimpl.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/futils.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/fvariant.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/ibstream.h"
|
||||
|
|
@ -2960,6 +2964,8 @@ set_source_files_properties(
|
|||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/LICENSE.txt"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/README.md"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.h"
|
||||
"../../../../../modules/juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/pluginview.cpp"
|
||||
|
|
|
|||
|
|
@ -874,6 +874,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3161,6 +3164,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3204,6 +3208,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1450,6 +1450,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -4581,6 +4584,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -4710,6 +4716,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -890,6 +890,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3346,6 +3349,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3389,6 +3393,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1516,6 +1516,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -4830,6 +4833,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -4959,6 +4965,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -890,6 +890,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3346,6 +3349,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3389,6 +3393,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1516,6 +1516,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -4830,6 +4833,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -4959,6 +4965,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -873,6 +873,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
|
|
@ -3137,6 +3140,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fstrdefs.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ftypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\fvariant.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\ibstream.h"/>
|
||||
|
|
@ -3180,6 +3184,7 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstpshpack4.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vstspeaker.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\pluginview.h"/>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\readfile.h"/>
|
||||
|
|
|
|||
|
|
@ -1447,6 +1447,9 @@
|
|||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source\main.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\samples\vst-utilities\moduleinfotool\source</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.cpp">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClCompile>
|
||||
|
|
@ -4548,6 +4551,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknown.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\funknownimpl.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base\futils.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\base</Filter>
|
||||
</ClInclude>
|
||||
|
|
@ -4677,6 +4683,9 @@
|
|||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst\vsttypes.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\pluginterfaces\vst</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\commonstringconvert.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common\memorystream.h">
|
||||
<Filter>JUCE Modules\juce_audio_processors\format_types\VST3_SDK\public.sdk\source\common</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
|||
|
|
@ -55,6 +55,10 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wc++98-compat-extra-semi",
|
|||
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_MSVC (6387 6031)
|
||||
|
||||
#ifndef _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
|
||||
#define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
|
||||
#endif
|
||||
|
||||
#ifndef NOMINMAX
|
||||
#define NOMINMAX 1
|
||||
#endif
|
||||
|
|
@ -70,6 +74,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (6387 6031)
|
|||
#include <juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/coreiids.cpp>
|
||||
#include <juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp>
|
||||
#include <juce_audio_processors/format_types/VST3_SDK/public.sdk/samples/vst-utilities/moduleinfotool/source/main.cpp>
|
||||
#include <juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/commonstringconvert.cpp>
|
||||
#include <juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/memorystream.cpp>
|
||||
#include <juce_audio_processors/format_types/VST3_SDK/public.sdk/source/common/readfile.cpp>
|
||||
#include <juce_audio_processors/format_types/VST3_SDK/public.sdk/source/vst/hosting/module.cpp>
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
- AAX, AUv3 and AU Wrappers
|
||||
- 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:
|
||||
|
||||
- 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.
|
||||
|
|
@ -33,15 +33,15 @@ The full VST 3 SDK is available [here!](https://www.steinberg.net/en/company/dev
|
|||
|
||||
Supported Platforms:
|
||||
|
||||
| Operating System |Architecture |Compiler | Notes|
|
||||
| :------------------------------------ | :-----------------------: | :-------------------------------: | :-----------: |
|
||||
|Windows 10/11 |x86, x86_64, arm64 |MSVC 2022, MSVC 2019 | |
|
||||
|Windows 8.1 |x86, x86_64 |MSVC 2019, MSVC 2017 | |
|
||||
|macOS 10.13, 10.14, 10.15, 11, 12, 13 |x86, x86_64, Apple Silicon |Xcode 10 - 14 | |
|
||||
|iOS 13 - iOS 16 |arm64 |Xcode 11 - 14 | |
|
||||
|Linux - Raspberry Pi OS (Buster) |arm32 |GCC 8.3 and higher |Visual Studio Code|
|
||||
|Linux - Ubuntu 18.04 LTS |x86, x86_64 |GCC 8.3 and higher |Visual Studio Code, Qt Creator|
|
||||
|Linux - Ubuntu 20.04 LTS |x86, x86_64 |GCC 8.3 and higher |Visual Studio Code, Qt Creator|
|
||||
| Operating System |Architecture |Compiler | Notes|
|
||||
| :------------------------------ | :-----------------------: | :---------------------: | :--------------------------: |
|
||||
|Windows 10/11 |x86, x86_64, arm64 |MSVC 2022, MSVC 2019 | |
|
||||
|Windows 8.1 |x86, x86_64 |MSVC 2019, MSVC 2017 | |
|
||||
|macOS 10.13 - 14 |x86, x86_64, Apple Silicon |Xcode 10 - 15 | |
|
||||
|iOS 13 - iOS 17 |arm64 |Xcode 11 - 15 | |
|
||||
|Linux - Raspberry Pi OS (Buster) |arm32 |GCC 8.3 and higher |Visual Studio Code |
|
||||
|Linux - Ubuntu 18.04 LTS |x86, x86_64 |GCC 8.3 and higher |Visual Studio Code, Qt Creator|
|
||||
|Linux - Ubuntu 20.04 LTS |x86, x86_64 |GCC 8.3 and higher |Visual Studio Code, Qt Creator|
|
||||
|
||||
---
|
||||
<div id='300'/>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -304,7 +304,7 @@ bool Buffer::makeHexString (String& result)
|
|||
if (data == nullptr || bytes == 0)
|
||||
return false;
|
||||
|
||||
char8* stringBuffer = (char8*)malloc ((bytes * 2) + 1);
|
||||
char8* stringBuffer = NEWSTR8 ((bytes * 2) + 1);
|
||||
if (!stringBuffer)
|
||||
return false;
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include "base/source/fobject.h"
|
||||
#include "base/thread/include/flock.h"
|
||||
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
#define SMTG_VALIDATE_DEPENDENCY_COUNT DEVELOPMENT // validating dependencyCount
|
||||
|
||||
|
|
@ -49,6 +50,13 @@
|
|||
|
||||
namespace Steinberg {
|
||||
|
||||
// Entry point for addRef/release tracking. See fobjecttracker.h
|
||||
//------------------------------------------------------------------------
|
||||
#if DEVELOPMENT
|
||||
using FObjectTrackerFn = std::function<void (FObject*, bool)>;
|
||||
FObjectTrackerFn gFObjectTracker = nullptr;
|
||||
#endif
|
||||
|
||||
IUpdateHandler* FObject::gUpdateHandler = nullptr;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -112,12 +120,26 @@ FObject::~FObject ()
|
|||
//------------------------------------------------------------------------
|
||||
uint32 PLUGIN_API FObject::addRef ()
|
||||
{
|
||||
#if DEVELOPMENT
|
||||
if (gFObjectTracker)
|
||||
{
|
||||
gFObjectTracker (this, true);
|
||||
}
|
||||
#endif
|
||||
|
||||
return FUnknownPrivate::atomicAdd (refCount, 1);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
uint32 PLUGIN_API FObject::release ()
|
||||
{
|
||||
#if DEVELOPMENT
|
||||
if (gFObjectTracker)
|
||||
{
|
||||
gFObjectTracker (this, false);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (FUnknownPrivate::atomicAdd (refCount, -1) == 0)
|
||||
{
|
||||
refCount = -1000;
|
||||
|
|
|
|||
|
|
@ -723,7 +723,7 @@ char8* FStreamer::readStr8 ()
|
|||
if (length > 262144)
|
||||
return nullptr;
|
||||
|
||||
char8* s = (length > 0) ? NEWVEC char8[length] : nullptr;
|
||||
char8* s = (length > 0) ? NEWSTR8 (length) : nullptr;
|
||||
if (s)
|
||||
readRaw (s, length * sizeof (char8));
|
||||
return s;
|
||||
|
|
|
|||
|
|
@ -233,7 +233,7 @@ static inline Steinberg::int32 sprintf16 (Steinberg::char16* str, const Steinber
|
|||
{
|
||||
va_list marker;
|
||||
va_start (marker, format);
|
||||
return vsnwprintf (str, -1, format, marker);
|
||||
return vsnwprintf (str, static_cast<size_t> (-1), format, marker);
|
||||
}
|
||||
|
||||
#elif SMTG_OS_LINUX
|
||||
|
|
@ -3564,6 +3564,14 @@ bool String::fromVariant (const FVariant& var)
|
|||
printInt64 (var.getInt ());
|
||||
return true;
|
||||
|
||||
case FVariant::kObject:
|
||||
if (auto string = ICast<Steinberg::IString> (var.getObject ()))
|
||||
if (string->isWideString ())
|
||||
assign (string->getText16 ());
|
||||
else
|
||||
assign (string->getText8 ());
|
||||
return true;
|
||||
|
||||
default:
|
||||
remove ();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@
|
|||
#include "base/source/fobject.h"
|
||||
|
||||
#include <cstdarg>
|
||||
#include <cstdlib>
|
||||
|
||||
namespace Steinberg {
|
||||
|
||||
|
|
@ -307,6 +308,10 @@ protected:
|
|||
|
||||
Extends class ConstString by operations which allow modifications.
|
||||
|
||||
If allocated externally and passed in via take() or extracted via pass(), memory
|
||||
is expected to be allocated with C's malloc() (rather than new) and deallocated with free().
|
||||
Use the NEWSTR8/16 and DELETESTR8/16 macros below.
|
||||
|
||||
\see ConstString */
|
||||
//-----------------------------------------------------------------------------
|
||||
class String : public ConstString
|
||||
|
|
@ -481,6 +486,12 @@ private:
|
|||
bool checkToMultiByte (uint32 destCodePage = kCP_Default) const; // to remove debug code from inline - const_cast inside!!!
|
||||
};
|
||||
|
||||
// String memory allocation macros
|
||||
#define NEWSTR8(len) ((char8*)::malloc(len)) // len includes trailing zero
|
||||
#define NEWSTR16(len) ((char16*)::malloc(2*(len)))
|
||||
#define DELETESTR8(p) (::free((char*)(p))) // cast to strip const
|
||||
#define DELETESTR16(p) (::free((char16*)(p)))
|
||||
|
||||
// String concatenation functions.
|
||||
inline String operator+ (const ConstString& s1, const ConstString& s2) {return String (s1).append (s2);}
|
||||
inline String operator+ (const ConstString& s1, const char8* s2) {return String (s1).append (s2);}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,10 @@ inline IPtr<FUnknown> getUnknownBase (FUnknown* unknown)
|
|||
{
|
||||
FUnknown* result = nullptr;
|
||||
if (unknown)
|
||||
unknown->queryInterface (FUnknown::iid, (void**)&result);
|
||||
{
|
||||
if (unknown->queryInterface (FObject::iid, (void**)&result) != kResultTrue)
|
||||
unknown->queryInterface (FUnknown::iid, (void**)&result);
|
||||
}
|
||||
|
||||
return owned (result);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,14 +82,9 @@
|
|||
#define SMTG_EXPORT_SYMBOL __declspec (dllexport)
|
||||
#define SMTG_HIDDEN_SYMBOL
|
||||
|
||||
#ifndef _CRT_SECURE_NO_WARNINGS
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning (disable : 4244) //! @brief warning C4244: Conversion from 'type1' to 'type2', possible loss of data.
|
||||
#pragma warning (disable : 4250) //! @brief warning C4250: Inheritance via dominance is allowed
|
||||
#pragma warning (disable : 4996) //! @brief warning C4996: deprecated functions
|
||||
|
||||
#pragma warning (3 : 4189) //! @brief warning C4189: local variable is initialized but not referenced
|
||||
#pragma warning (3 : 4238) //! @brief warning C4238: nonstandard extension used : class rvalue used as lvalue
|
||||
|
|
|
|||
|
|
@ -86,11 +86,13 @@
|
|||
#define ENDLINE ENDLINE_A
|
||||
#endif
|
||||
|
||||
#if SMTG_OS_WINDOWS && !defined(__GNUC__) && defined(_MSC_VER) && (_MSC_VER < 1900)
|
||||
#if SMTG_OS_WINDOWS && !defined(__GNUC__) && defined(_MSC_VER)
|
||||
#define stricmp _stricmp
|
||||
#define strnicmp _strnicmp
|
||||
#if (_MSC_VER < 1900)
|
||||
#define snprintf _snprintf
|
||||
#endif
|
||||
#endif
|
||||
|
||||
namespace Steinberg {
|
||||
|
||||
|
|
|
|||
|
|
@ -410,12 +410,6 @@ void FUID::toRegistryString (char8* string) const
|
|||
#endif
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
void FUID::print (char8* string, int32 style) const
|
||||
{
|
||||
print (style, string, 62);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
void FUID::print (int32 style, char8* string, size_t stringBufferSize) const
|
||||
{
|
||||
|
|
@ -439,22 +433,26 @@ void FUID::print (int32 style, char8* string, size_t stringBufferSize) const
|
|||
switch (style)
|
||||
{
|
||||
case kINLINE_UID:
|
||||
// length is 60 (with null-terminate)
|
||||
snprintf (string, stringBufferSize, "INLINE_UID (0x%08X, 0x%08X, 0x%08X, 0x%08X)", l1,
|
||||
l2, l3, l4);
|
||||
break;
|
||||
|
||||
case kDECLARE_UID:
|
||||
// length is 61 (with null-terminate)
|
||||
snprintf (string, stringBufferSize, "DECLARE_UID (0x%08X, 0x%08X, 0x%08X, 0x%08X)", l1,
|
||||
l2, l3, l4);
|
||||
break;
|
||||
|
||||
case kFUID:
|
||||
// length is 54 (with null-terminate)
|
||||
snprintf (string, stringBufferSize, "FUID (0x%08X, 0x%08X, 0x%08X, 0x%08X)", l1, l2, l3,
|
||||
l4);
|
||||
break;
|
||||
|
||||
case kCLASS_UID:
|
||||
default:
|
||||
// length is 78 (with null-terminate)
|
||||
snprintf (string, stringBufferSize,
|
||||
"DECLARE_CLASS_IID (Interface, 0x%08X, 0x%08X, 0x%08X, 0x%08X)", l1, l2, l3,
|
||||
l4);
|
||||
|
|
|
|||
|
|
@ -314,11 +314,6 @@ public:
|
|||
\param stringBufferSize is the size of the output string */
|
||||
void print (int32 style, char8* string = nullptr, size_t stringBufferSize = 0) const;
|
||||
|
||||
#if SMTG_CPP17
|
||||
[[deprecated ("Use the print method with the buffer size")]]
|
||||
#endif
|
||||
void print (char8* string = nullptr, int32 style = kINLINE_UID) const;
|
||||
|
||||
template <size_t N>
|
||||
inline explicit FUID (const char (&uid)[N])
|
||||
{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,470 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Flags : clang-format SMTGSequencer
|
||||
// Project : SDK Core
|
||||
//
|
||||
// Category : SDK Core Interfaces
|
||||
// Filename : pluginterfaces/base/funknownimpl.h
|
||||
// Created by : Steinberg, 10/2021
|
||||
// Description : Steinberg Module Architecture Interface Implementation Helper
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// This file is part of a Steinberg SDK. It is subject to the license terms
|
||||
// in the LICENSE file found in the top-level directory of this distribution
|
||||
// and at www.steinberg.net/sdklicenses.
|
||||
// No part of the SDK, including this file, may be copied, modified, propagated,
|
||||
// or distributed except according to the terms contained in the LICENSE file.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
#include "pluginterfaces/base/fplatform.h"
|
||||
#include "pluginterfaces/base/funknown.h"
|
||||
#include <atomic>
|
||||
#include <type_traits>
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
#if !(SMTG_CPP11)
|
||||
#error "C++11 is required for this header"
|
||||
#endif
|
||||
|
||||
// clang-format off
|
||||
/**
|
||||
This header provides classes for working with FUnknown.
|
||||
|
||||
An interface which shall support Steinbergs Module Architecture should inherit from U::Unknown and provide a typedef
|
||||
@c IID of type U::UID.
|
||||
|
||||
On OS X you can generate an U::UID and copy it to the clipboard with the following shell command:
|
||||
@code
|
||||
uuidgen | { read id; echo -n "using IID = U::UID<0x${id:0:8}, 0x${id:9:4}${id:14:4}, 0x${id:19:4}${id:24:4}, 0x${id:28:8}>;" ; } | pbcopy
|
||||
@endcode
|
||||
|
||||
Example:
|
||||
@code{.cpp}
|
||||
struct IFoo : public U::Unknown
|
||||
{
|
||||
// Use a generated random uid here.
|
||||
using IID = U::UID<0x01234567, 0x89012345, 0x67890123, 0x45678901>;
|
||||
|
||||
virtual void bar () = 0;
|
||||
};
|
||||
@endcode
|
||||
|
||||
A class implementing the interface @c IFoo uses the U::Implements template to specify the
|
||||
interfaces it implements. All interfaces which the class should derive from need to be listed in the
|
||||
U::Directly template.
|
||||
|
||||
Example:
|
||||
@code{.cpp}
|
||||
struct FooImpl : public U::Implements<U::Directly<IFoo>>
|
||||
{
|
||||
void bar () override {}
|
||||
};
|
||||
@endcode
|
||||
|
||||
To check if a class can provide a specific interface use the U::cast function.
|
||||
|
||||
Example:
|
||||
@code{.cpp}
|
||||
void test (U::Unknown* obj)
|
||||
{
|
||||
if (auto foo = U::cast<IFoo> (obj))
|
||||
{
|
||||
// obj provided IFoo
|
||||
}
|
||||
}
|
||||
@endcode
|
||||
|
||||
The U::Implements class supports a second template parameter U::Indirectly for specifying
|
||||
a list of interfaces which should be available via @c queryInterface but not inherited from.
|
||||
This is useful if an interface extends another interface.
|
||||
|
||||
Example:
|
||||
@code{.cpp}
|
||||
struct IBar : public IFoo
|
||||
{
|
||||
using IID = U::UID<0x11223344, 0x55667788, 0x99001122, 0x33445566>;
|
||||
|
||||
virtual void baz () = 0;
|
||||
};
|
||||
|
||||
struct BarImpl : public U::Implements<U::Directly<IBar>, U::Indirectly<IFoo>>
|
||||
{
|
||||
void bar () override {}
|
||||
void baz () override {}
|
||||
};
|
||||
@endcode
|
||||
|
||||
In some cases a class shall be extended and an additional interface implemented.
|
||||
This is possible with the U::Extends template which is a generalization of the U::Implements
|
||||
template and allows specifying a base class from which should be inherited.
|
||||
|
||||
Example:
|
||||
@code{.cpp}
|
||||
struct ITest : public U::Unknown
|
||||
{
|
||||
using IID = U::UID<0x99887766, 0x55443322, 0x11009988, 0x77665544>;
|
||||
|
||||
virtual bool equal (int a, int b) const = 0;
|
||||
};
|
||||
|
||||
struct TestImpl : public U::Extends<FooImpl, U::Directly<ITest>>
|
||||
{
|
||||
bool equal (int a, int b) const override { return a == b; }
|
||||
};
|
||||
@endcode
|
||||
|
||||
To pass arbitrary arguments to the specified base class one can use the inherited @c Base
|
||||
typedef. All arguments passed to @c Base are automatically perfectly forwarded to the base class.
|
||||
|
||||
In the following example the value 42 is passed to the @c AlternativeFooImpl base class:
|
||||
@code{.cpp}
|
||||
struct AlternativeFooImpl : public U::Implements<U::Directly<IFoo>>
|
||||
{
|
||||
AlternativeFooImpl (int dummy = 0) : dummy {dummy} {}
|
||||
void bar () override {}
|
||||
|
||||
int dummy;
|
||||
};
|
||||
|
||||
struct AlternativeTestImpl : public U::Extends<AlternativeFooImpl, U::Directly<ITest>>
|
||||
{
|
||||
AlternativeTestImpl () : Base {42} {}
|
||||
|
||||
bool equal (int a, int b) const override { return a == b; }
|
||||
};
|
||||
@endcode
|
||||
*/
|
||||
// clang-format on
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace Steinberg {
|
||||
namespace FUnknownImpl {
|
||||
|
||||
/** Typedef to keep everything in this namespace. */
|
||||
using Unknown = FUnknown;
|
||||
|
||||
/** A base class which hides the FUnknown::iid static var */
|
||||
struct HideIIDBase : FUnknown
|
||||
{
|
||||
using iid = void;
|
||||
};
|
||||
|
||||
/** Common destroyer policy for ski object instances.*/
|
||||
struct Destroyer
|
||||
{
|
||||
template <typename UnknownT>
|
||||
static void destroy (UnknownT* ptr)
|
||||
{
|
||||
if (!!ptr)
|
||||
ptr->release ();
|
||||
}
|
||||
};
|
||||
|
||||
template <typename Base, typename D, typename I>
|
||||
class ImplementsImpl;
|
||||
|
||||
/**
|
||||
* This class provides a compile-time uid and enables interfaces to specify a UID as a simple
|
||||
* typedef. This way the FUID, DECLARE_CLASS_IID and DEF_CLASS_IID code can be omitted.
|
||||
*/
|
||||
template <uint32 t1, uint32 t2, uint32 t3, uint32 t4>
|
||||
struct UID
|
||||
{
|
||||
enum : int8
|
||||
{
|
||||
l1_1 = static_cast<int8> ((t1 & 0xFF000000) >> 24),
|
||||
l1_2 = static_cast<int8> ((t1 & 0x00FF0000) >> 16),
|
||||
l1_3 = static_cast<int8> ((t1 & 0x0000FF00) >> 8),
|
||||
l1_4 = static_cast<int8> ((t1 & 0x000000FF)),
|
||||
l2_1 = static_cast<int8> ((t2 & 0xFF000000) >> 24),
|
||||
l2_2 = static_cast<int8> ((t2 & 0x00FF0000) >> 16),
|
||||
l2_3 = static_cast<int8> ((t2 & 0x0000FF00) >> 8),
|
||||
l2_4 = static_cast<int8> ((t2 & 0x000000FF)),
|
||||
l3_1 = static_cast<int8> ((t3 & 0xFF000000) >> 24),
|
||||
l3_2 = static_cast<int8> ((t3 & 0x00FF0000) >> 16),
|
||||
l3_3 = static_cast<int8> ((t3 & 0x0000FF00) >> 8),
|
||||
l3_4 = static_cast<int8> ((t3 & 0x000000FF)),
|
||||
l4_1 = static_cast<int8> ((t4 & 0xFF000000) >> 24),
|
||||
l4_2 = static_cast<int8> ((t4 & 0x00FF0000) >> 16),
|
||||
l4_3 = static_cast<int8> ((t4 & 0x0000FF00) >> 8),
|
||||
l4_4 = static_cast<int8> ((t4 & 0x000000FF))
|
||||
};
|
||||
|
||||
UID () = delete;
|
||||
|
||||
static const TUID& toTUID ()
|
||||
{
|
||||
// clang-format off
|
||||
static TUID uuid = {
|
||||
#if COM_COMPATIBLE
|
||||
l1_4, l1_3, l1_2, l1_1,
|
||||
l2_2, l2_1, l2_4, l2_3,
|
||||
#else
|
||||
l1_1, l1_2, l1_3, l1_4,
|
||||
l2_1, l2_2, l2_3, l2_4,
|
||||
#endif
|
||||
l3_1, l3_2, l3_3, l3_4,
|
||||
l4_1, l4_2, l4_3, l4_4
|
||||
};
|
||||
// clang-format on
|
||||
return uuid;
|
||||
}
|
||||
};
|
||||
|
||||
/** @return the TUID for an interface. */
|
||||
template <typename T>
|
||||
const TUID& getTUID ()
|
||||
{
|
||||
return ::Steinberg::getTUID<T> ();
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given Unknown can provide the specified interface and returns it in an IPtr.
|
||||
*
|
||||
* @return an IPtr pointing to an instance of the requested interface or nullptr in case the
|
||||
* object does not provide the interface.
|
||||
*/
|
||||
template <typename I>
|
||||
IPtr<I> cast (Unknown* u)
|
||||
{
|
||||
I* out = nullptr;
|
||||
return u && u->queryInterface (getTUID<I> (), reinterpret_cast<void**> (&out)) == kResultOk ?
|
||||
owned (out) :
|
||||
nullptr;
|
||||
}
|
||||
|
||||
/** Casts to Unknown* and then to the specified interface. */
|
||||
template <typename I, typename S, typename T, typename U>
|
||||
IPtr<I> cast (ImplementsImpl<S, T, U>* u)
|
||||
{
|
||||
return cast<I> (u->unknownCast ());
|
||||
}
|
||||
|
||||
/** Casts to Unknown* and then to the specified interface. */
|
||||
template <typename I, typename T>
|
||||
IPtr<I> cast (const IPtr<T>& u)
|
||||
{
|
||||
return cast<I> (u.get ());
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace Detail {
|
||||
|
||||
/**
|
||||
* This struct implements reference counting for the @c U::Implements template.
|
||||
* It also provides a @c queryInterface method stub to support @c queryInterface
|
||||
* call made in the @c U::Implements template.
|
||||
*/
|
||||
struct RefCounted
|
||||
{
|
||||
//------------------------------------------------------------------------
|
||||
RefCounted () = default;
|
||||
RefCounted (const RefCounted&) {}
|
||||
RefCounted (RefCounted&& other) SMTG_NOEXCEPT : refCount {other.refCount.load ()} {}
|
||||
virtual ~RefCounted () = default;
|
||||
|
||||
RefCounted& operator= (const RefCounted&) { return *this; }
|
||||
RefCounted& operator= (RefCounted&& other) SMTG_NOEXCEPT
|
||||
{
|
||||
refCount = other.refCount.load ();
|
||||
return *this;
|
||||
}
|
||||
|
||||
uint32 PLUGIN_API addRef () { return ++refCount; }
|
||||
|
||||
uint32 PLUGIN_API release ()
|
||||
{
|
||||
if (--refCount == 0)
|
||||
{
|
||||
destroyInstance ();
|
||||
refCount = -1000;
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
return refCount;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
private:
|
||||
virtual void destroyInstance () {}
|
||||
|
||||
std::atomic<int32> refCount {1};
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
struct NonDestroyable
|
||||
{
|
||||
//------------------------------------------------------------------------
|
||||
NonDestroyable () = default;
|
||||
virtual ~NonDestroyable () = default;
|
||||
uint32 PLUGIN_API addRef () { return 1000; }
|
||||
uint32 PLUGIN_API release () { return 1000; }
|
||||
|
||||
private:
|
||||
virtual void destroyInstance () {}
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
template <typename T>
|
||||
struct QueryInterfaceEnd : T
|
||||
{
|
||||
//------------------------------------------------------------------------
|
||||
tresult PLUGIN_API queryInterface (const TUID /*iid*/, void** obj)
|
||||
{
|
||||
*obj = nullptr;
|
||||
return kNoInterface;
|
||||
}
|
||||
//------------------------------------------------------------------------
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // Detail
|
||||
|
||||
/**
|
||||
* This struct is used to group a list of interfaces from which should be inherited and which
|
||||
* should be available via the @c queryInterface method.
|
||||
*/
|
||||
template <typename... T>
|
||||
struct Directly
|
||||
{
|
||||
};
|
||||
|
||||
/**
|
||||
* This struct is used to group a list of interfaces from which should not be inherited but which
|
||||
* should be available via the @c queryInterface method.
|
||||
*/
|
||||
template <typename... T>
|
||||
struct Indirectly
|
||||
{
|
||||
};
|
||||
|
||||
template <typename Base, typename D, typename I>
|
||||
class ImplementsImpl
|
||||
{
|
||||
static_assert (sizeof (Base) == -1, "use U::Directly and U::Indirectly to specify interfaces");
|
||||
};
|
||||
|
||||
template <typename Base, typename... DirectInterfaces, typename... IndirectInterfaces>
|
||||
class ImplementsImpl<Base, Indirectly<IndirectInterfaces...>, Directly<DirectInterfaces...>>
|
||||
{
|
||||
static_assert (sizeof (Base) == -1, "U::Indirectly only allowed after U::Directly");
|
||||
};
|
||||
|
||||
/** This class implements the required virtual methods for the U::Unknown class. */
|
||||
template <typename BaseClass, typename I, typename... DirectIFs, typename... IndirectIFs>
|
||||
class ImplementsImpl<BaseClass, Directly<I, DirectIFs...>, Indirectly<IndirectIFs...>>
|
||||
: public BaseClass, public I, public DirectIFs...
|
||||
{
|
||||
public:
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* This is a convenience typedef for the deriving class to pass arguments to the
|
||||
* constructor, which are in turn passed to the base class of this class.
|
||||
*/
|
||||
using Base = ImplementsImpl<BaseClass, Directly<I, DirectIFs...>, Indirectly<IndirectIFs...>>;
|
||||
|
||||
template <typename... Args>
|
||||
ImplementsImpl (Args&&... args) : BaseClass {std::forward<Args> (args)...}
|
||||
{
|
||||
}
|
||||
|
||||
tresult PLUGIN_API queryInterface (const TUID tuid, void** obj) override
|
||||
{
|
||||
if (!obj)
|
||||
return kInvalidArgument;
|
||||
|
||||
if (queryInterfaceImpl<I, DirectIFs...> (tuid, *obj) ||
|
||||
queryInterfaceImpl<IndirectIFs...> (tuid, *obj))
|
||||
{
|
||||
static_cast<Unknown*> (*obj)->addRef ();
|
||||
return kResultOk;
|
||||
}
|
||||
|
||||
return BaseClass::queryInterface (tuid, obj);
|
||||
}
|
||||
|
||||
uint32 PLUGIN_API addRef () override { return BaseClass::addRef (); }
|
||||
uint32 PLUGIN_API release () override { return BaseClass::release (); }
|
||||
|
||||
Unknown* unknownCast () { return static_cast<Unknown*> (static_cast<I*> (this)); }
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
private:
|
||||
template <typename Interface>
|
||||
inline constexpr bool match (const TUID tuid) const noexcept
|
||||
{
|
||||
return reinterpret_cast<const uint64*> (tuid)[0] ==
|
||||
reinterpret_cast<const uint64*> (getTUID<Interface> ())[0] &&
|
||||
reinterpret_cast<const uint64*> (tuid)[1] ==
|
||||
reinterpret_cast<const uint64*> (getTUID<Interface> ())[1];
|
||||
}
|
||||
|
||||
template <int = 0>
|
||||
inline constexpr bool queryInterfaceImpl (const TUID, void*&) const noexcept
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename Interface, typename... RemainingInterfaces>
|
||||
inline bool queryInterfaceImpl (const TUID tuid, void*& obj) noexcept
|
||||
{
|
||||
if (match<Interface> (tuid) || match<Unknown> (tuid))
|
||||
{
|
||||
obj = static_cast<Interface*> (this->unknownCast ());
|
||||
return true;
|
||||
}
|
||||
|
||||
obj = getInterface<RemainingInterfaces...> (tuid);
|
||||
return obj != nullptr;
|
||||
}
|
||||
|
||||
template <int = 0>
|
||||
inline constexpr void* getInterface (const TUID) const noexcept
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
template <typename Interface, typename... RemainingInterfaces>
|
||||
inline void* getInterface (const TUID tuid) noexcept
|
||||
{
|
||||
return match<Interface> (tuid) ? static_cast<Interface*> (this) :
|
||||
getInterface<RemainingInterfaces...> (tuid);
|
||||
}
|
||||
};
|
||||
|
||||
/** This typedef enables using a custom base class with the interface implementation. */
|
||||
template <typename BaseClass, typename D, typename I = Indirectly<>>
|
||||
using Extends = ImplementsImpl<BaseClass, D, I>;
|
||||
|
||||
/** This typedef provides the interface implementation. */
|
||||
template <typename D, typename I = Indirectly<>>
|
||||
using Implements = ImplementsImpl<Detail::QueryInterfaceEnd<Detail::RefCounted>, D, I>;
|
||||
|
||||
/** This typedef provides the interface implementation for objects which should not be destroyed via
|
||||
* FUnknown::release (like singletons). */
|
||||
template <typename D, typename I = Indirectly<>>
|
||||
using ImplementsNonDestroyable =
|
||||
ImplementsImpl<Detail::QueryInterfaceEnd<Detail::NonDestroyable>, D, I>;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // FUnknownImpl
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/** Shortcut namespace for implementing FUnknown based objects. */
|
||||
namespace U {
|
||||
|
||||
using Unknown = FUnknownImpl::HideIIDBase;
|
||||
using FUnknownImpl::UID;
|
||||
using FUnknownImpl::Extends;
|
||||
using FUnknownImpl::Implements;
|
||||
using FUnknownImpl::ImplementsNonDestroyable;
|
||||
using FUnknownImpl::Directly;
|
||||
using FUnknownImpl::Indirectly;
|
||||
using FUnknownImpl::cast;
|
||||
using FUnknownImpl::getTUID;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // namespace U
|
||||
} // namespace Steinberg
|
||||
|
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include "pluginterfaces/base/fstrdefs.h"
|
||||
#include "pluginterfaces/base/funknown.h"
|
||||
#include <cstdlib>
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace Steinberg {
|
||||
|
|
@ -249,9 +250,9 @@ inline void FVariant::empty ()
|
|||
if (type & kOwner)
|
||||
{
|
||||
if ((type & kString8) && string8)
|
||||
delete[] string8;
|
||||
free (const_cast<char8*> (string8)); // should match DELETESTR8
|
||||
else if ((type & kString16) && string16)
|
||||
delete[] string16;
|
||||
free (const_cast<char16*> (string16)); // should match DELETESTR16
|
||||
|
||||
else if ((type & kObject) && object)
|
||||
object->release ();
|
||||
|
|
@ -268,14 +269,14 @@ inline FVariant& FVariant::operator= (const FVariant& variant)
|
|||
|
||||
if ((type & kString8) && variant.string8)
|
||||
{
|
||||
string8 = new char8[strlen (variant.string8) + 1];
|
||||
string8 = static_cast<char8*> (malloc (strlen (variant.string8) + 1)); // should match NEWSTR8
|
||||
strcpy (const_cast<char8*> (string8), variant.string8);
|
||||
type |= kOwner;
|
||||
}
|
||||
else if ((type & kString16) && variant.string16)
|
||||
{
|
||||
auto len = static_cast<size_t> (strlen16 (variant.string16));
|
||||
string16 = new char16[len + 1];
|
||||
string16 = static_cast<char16*> (malloc ((len + 1) * sizeof (char16))); // should match NEWSTR16
|
||||
char16* tmp = const_cast<char16*> (string16);
|
||||
memcpy (tmp, variant.string16, len * sizeof (char16));
|
||||
tmp[len] = 0;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// This file is part of a Steinberg SDK. It is subject to the license terms
|
||||
// in the LICENSE file found in the top-level directory of this distribution
|
||||
// and at www.steinberg.net/sdklicenses.
|
||||
// and at www.steinberg.net/sdklicenses.
|
||||
// No part of the SDK, including this file, may be copied, modified, propagated,
|
||||
// or distributed except according to the terms contained in the LICENSE file.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -23,6 +23,7 @@
|
|||
#include "pluginterfaces/base/falignpush.h"
|
||||
//------------------------------------------------------------------------
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace Steinberg {
|
||||
class IBStream;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// This file is part of a Steinberg SDK. It is subject to the license terms
|
||||
// in the LICENSE file found in the top-level directory of this distribution
|
||||
// and at www.steinberg.net/sdklicenses.
|
||||
// and at www.steinberg.net/sdklicenses.
|
||||
// No part of the SDK, including this file, may be copied, modified, propagated,
|
||||
// or distributed except according to the terms contained in the LICENSE file.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -46,30 +46,56 @@ namespace Vst {
|
|||
struct ParameterInfo
|
||||
{
|
||||
//------------------------------------------------------------------------
|
||||
ParamID id; ///< unique identifier of this parameter (named tag too)
|
||||
String128 title; ///< parameter title (e.g. "Volume")
|
||||
String128 shortTitle; ///< parameter shortTitle (e.g. "Vol")
|
||||
String128 units; ///< parameter unit (e.g. "dB")
|
||||
int32 stepCount; ///< number of discrete steps (0: continuous, 1: toggle, discrete value otherwise
|
||||
///< (corresponding to max - min, for example: 127 for a min = 0 and a max = 127) - see \ref vst3ParameterIntro)
|
||||
ParamValue defaultNormalizedValue; ///< default normalized value [0,1] (in case of discrete value: defaultNormalizedValue = defDiscreteValue / stepCount)
|
||||
UnitID unitId; ///< id of unit this parameter belongs to (see \ref vst3Units)
|
||||
ParamID id; ///< unique identifier of this parameter (named tag too)
|
||||
String128 title; ///< parameter title (e.g. "Volume")
|
||||
String128 shortTitle; ///< parameter shortTitle (e.g. "Vol")
|
||||
String128 units; ///< parameter unit (e.g. "dB")
|
||||
int32 stepCount; ///< number of discrete steps (0: continuous, 1: toggle, discrete value
|
||||
/// otherwise (corresponding to max - min, for example:
|
||||
/// 127 for min = 0 and max = 127) - see \ref vst3ParameterIntro)
|
||||
ParamValue defaultNormalizedValue; ///< default normalized value [0,1]
|
||||
/// in case of discrete value:
|
||||
/// defaultNormalizedValue = defDiscreteValue/stepCount
|
||||
UnitID unitId; ///< id of unit this parameter belongs to (see \ref vst3Units)
|
||||
|
||||
int32 flags; ///< ParameterFlags (see below)
|
||||
enum ParameterFlags
|
||||
int32 flags; ///< ParameterFlags (see below)
|
||||
|
||||
enum ParameterFlags : int32
|
||||
{
|
||||
kNoFlags = 0, ///< no flags wanted
|
||||
kCanAutomate = 1 << 0, ///< parameter can be automated
|
||||
kIsReadOnly = 1 << 1, ///< parameter cannot be changed from outside the plug-in (implies that kCanAutomate is NOT set)
|
||||
kIsWrapAround = 1 << 2, ///< attempts to set the parameter value out of the limits will result in a wrap around [SDK 3.0.2]
|
||||
kIsList = 1 << 3, ///< parameter should be displayed as list in generic editor or automation editing [SDK 3.1.0]
|
||||
kIsHidden = 1 << 4, ///< parameter should be NOT displayed and cannot be changed from outside the plug-in
|
||||
///< (implies that kCanAutomate is NOT set and kIsReadOnly is set) [SDK 3.7.0]
|
||||
/** No flags wanted.
|
||||
* [SDK 3.0.0] */
|
||||
kNoFlags = 0,
|
||||
|
||||
kIsProgramChange = 1 << 15, ///< parameter is a program change (unitId gives info about associated unit
|
||||
///< - see \ref vst3ProgramLists)
|
||||
kIsBypass = 1 << 16 ///< special bypass parameter (only one allowed): plug-in can handle bypass
|
||||
///< (highly recommended to export a bypass parameter for effect plug-in)
|
||||
/** Parameter can be automated.
|
||||
* [SDK 3.0.0] */
|
||||
kCanAutomate = 1 << 0,
|
||||
|
||||
/** Parameter cannot be changed from outside the plug-in
|
||||
* (implies that kCanAutomate is NOT set).
|
||||
* [SDK 3.0.0] */
|
||||
kIsReadOnly = 1 << 1,
|
||||
|
||||
/** Attempts to set the parameter value out of the limits will result in a wrap around.
|
||||
* [SDK 3.0.2] */
|
||||
kIsWrapAround = 1 << 2,
|
||||
|
||||
/** Parameter should be displayed as list in generic editor or automation editing.
|
||||
* [SDK 3.1.0] */
|
||||
kIsList = 1 << 3,
|
||||
/** Parameter should be NOT displayed and cannot be changed from outside the plug-in.
|
||||
* It implies that kCanAutomate is NOT set and kIsReadOnly is set.
|
||||
* [SDK 3.7.0] */
|
||||
kIsHidden = 1 << 4,
|
||||
|
||||
/** Parameter is a program change (unitId gives info about associated unit - see \ref
|
||||
* vst3ProgramLists).
|
||||
* [SDK 3.0.0] */
|
||||
kIsProgramChange = 1 << 15,
|
||||
|
||||
/** Special bypass parameter (only one allowed): plug-in can handle bypass.
|
||||
* Highly recommended to export a bypass parameter for effect plug-in.
|
||||
* [SDK 3.0.0] */
|
||||
kIsBypass = 1 << 16
|
||||
};
|
||||
//------------------------------------------------------------------------
|
||||
};
|
||||
|
|
@ -83,90 +109,92 @@ const CString kEditor = "editor";
|
|||
|
||||
//------------------------------------------------------------------------
|
||||
/** Flags used for IComponentHandler::restartComponent */
|
||||
enum RestartFlags
|
||||
enum RestartFlags : int32
|
||||
{
|
||||
/** The Component should be reloaded
|
||||
* The host has to unload completely the plug-in (controller/processor) and reload it.
|
||||
* [SDK 3.0.0] */
|
||||
* The host has to unload completely the plug-in (controller/processor) and reload it.
|
||||
* [SDK 3.0.0] */
|
||||
kReloadComponent = 1 << 0,
|
||||
|
||||
/** Input / Output Bus configuration has changed
|
||||
* The plug-in informs the host that either the bus configuration or the bus count has changed.
|
||||
* The host has to deactivate the plug-in, asks the plug-in for its wanted new bus configurations,
|
||||
* adapts its processing graph and reactivate the plug-in.
|
||||
* [SDK 3.0.0] */
|
||||
kIoChanged = 1 << 1,
|
||||
/** Input/Output Bus configuration has changed
|
||||
* The plug-in informs the host that either the bus configuration or the bus count has changed.
|
||||
* The host has to deactivate the plug-in, asks the plug-in for its wanted new bus
|
||||
* configurations, adapts its processing graph and reactivate the plug-in.
|
||||
* [SDK 3.0.0] */
|
||||
kIoChanged = 1 << 1,
|
||||
|
||||
/** Multiple parameter values have changed (as result of a program change for example)
|
||||
* The host invalidates all caches of parameter values and asks the edit controller for the current values.
|
||||
* [SDK 3.0.0] */
|
||||
kParamValuesChanged = 1 << 2,
|
||||
* The host invalidates all caches of parameter values and asks the edit controller for the
|
||||
* current values.
|
||||
* [SDK 3.0.0] */
|
||||
kParamValuesChanged = 1 << 2,
|
||||
|
||||
/** Latency has changed
|
||||
* The plug informs the host that its latency has changed, getLatencySamples should return the new latency after setActive (true) was called
|
||||
* The host has to deactivate and reactivate the plug-in, then afterwards the host could ask for the current latency (getLatencySamples)
|
||||
* See IAudioProcessor::getLatencySamples
|
||||
* [SDK 3.0.0] */
|
||||
* The plug informs the host that its latency has changed, getLatencySamples should return the new latency after setActive (true) was called
|
||||
* The host has to deactivate and reactivate the plug-in, then afterwards the host could ask for the current latency (getLatencySamples)
|
||||
* See IAudioProcessor::getLatencySamples
|
||||
* [SDK 3.0.0] */
|
||||
kLatencyChanged = 1 << 3,
|
||||
|
||||
/** Parameter titles, default values or flags (ParameterFlags) have changed
|
||||
* The host invalidates all caches of parameter infos and asks the edit controller for the current infos.
|
||||
* [SDK 3.0.0] */
|
||||
kParamTitlesChanged = 1 << 4,
|
||||
/** Parameter titles (title, shortTitle and units), default values, stepCount or flags (ParameterFlags) have changed
|
||||
* The host invalidates all caches of parameter infos and asks the edit controller for the
|
||||
* current infos.
|
||||
* [SDK 3.0.0] */
|
||||
kParamTitlesChanged = 1 << 4,
|
||||
|
||||
/** MIDI Controllers and/or Program Changes Assignments have changed
|
||||
* The plug-in informs the host that its MIDI-CC mapping has changed (for example after a MIDI learn or new loaded preset)
|
||||
* or if the stepCount or UnitID of a ProgramChange parameter has changed.
|
||||
* The host has to rebuild the MIDI-CC => parameter mapping (getMidiControllerAssignment)
|
||||
* and reread program changes parameters (stepCount and associated unitID)
|
||||
* [SDK 3.0.1] */
|
||||
* The plug-in informs the host that its MIDI-CC mapping has changed (for example after a MIDI learn or new loaded preset)
|
||||
* or if the stepCount or UnitID of a ProgramChange parameter has changed.
|
||||
* The host has to rebuild the MIDI-CC => parameter mapping (getMidiControllerAssignment)
|
||||
* and reread program changes parameters (stepCount and associated unitID)
|
||||
* [SDK 3.0.1] */
|
||||
kMidiCCAssignmentChanged = 1 << 5,
|
||||
|
||||
/** Note Expression has changed (info, count, PhysicalUIMapping, ...)
|
||||
* Either the note expression type info, the count of note expressions or the physical UI mapping has changed.
|
||||
* The host invalidates all caches of note expression infos and asks the edit controller for the current ones.
|
||||
* See INoteExpressionController, NoteExpressionTypeInfo and INoteExpressionPhysicalUIMapping
|
||||
* [SDK 3.5.0] */
|
||||
* Either the note expression type info, the count of note expressions or the physical UI mapping has changed.
|
||||
* The host invalidates all caches of note expression infos and asks the edit controller for the current ones.
|
||||
* See INoteExpressionController, NoteExpressionTypeInfo and INoteExpressionPhysicalUIMapping
|
||||
* [SDK 3.5.0] */
|
||||
kNoteExpressionChanged = 1 << 6,
|
||||
|
||||
/** Input / Output bus titles have changed
|
||||
* The host invalidates all caches of bus titles and asks the edit controller for the current titles.
|
||||
* [SDK 3.5.0] */
|
||||
* The host invalidates all caches of bus titles and asks the edit controller for the current titles.
|
||||
* [SDK 3.5.0] */
|
||||
kIoTitlesChanged = 1 << 7,
|
||||
|
||||
/** Prefetch support has changed
|
||||
* The plug-in informs the host that its PrefetchSupport has changed
|
||||
* The host has to deactivate the plug-in, calls IPrefetchableSupport::getPrefetchableSupport
|
||||
* and reactivate the plug-in.
|
||||
* See IPrefetchableSupport
|
||||
* [SDK 3.6.1] */
|
||||
* The plug-in informs the host that its PrefetchSupport has changed
|
||||
* The host has to deactivate the plug-in, calls IPrefetchableSupport::getPrefetchableSupport
|
||||
* and reactivate the plug-in.
|
||||
* See IPrefetchableSupport
|
||||
* [SDK 3.6.1] */
|
||||
kPrefetchableSupportChanged = 1 << 8,
|
||||
|
||||
/** RoutingInfo has changed
|
||||
* The plug-in informs the host that its internal routing (relation of an event-input-channel to
|
||||
* an audio-output-bus) has changed. The host asks the plug-in for the new routing with
|
||||
* IComponent::getRoutingInfo, \ref vst3Routing
|
||||
* See IComponent
|
||||
* [SDK 3.6.6] */
|
||||
* The plug-in informs the host that its internal routing (relation of an event-input-channel to
|
||||
* an audio-output-bus) has changed. The host asks the plug-in for the new routing with
|
||||
* IComponent::getRoutingInfo, \ref vst3Routing
|
||||
* See IComponent
|
||||
* [SDK 3.6.6] */
|
||||
kRoutingInfoChanged = 1 << 9,
|
||||
|
||||
/** Key switches has changed (info, count)
|
||||
* Either the Key switches info, the count of Key switches has changed.
|
||||
* The host invalidates all caches of Key switches infos and asks the edit controller
|
||||
* (IKeyswitchController) for the current ones.
|
||||
* See IKeyswitchController
|
||||
* [SDK 3.7.3] */
|
||||
* Either the Key switches info, the count of Key switches has changed.
|
||||
* The host invalidates all caches of Key switches infos and asks the edit controller
|
||||
* (IKeyswitchController) for the current ones.
|
||||
* See IKeyswitchController
|
||||
* [SDK 3.7.3] */
|
||||
kKeyswitchChanged = 1 << 10,
|
||||
|
||||
/** Mapping of ParamID has changed
|
||||
* The Plug-in informs the host that its parameters ID has changed. This has to be called by the
|
||||
* edit controller in the method setComponentState or setState (during projects loading) when the
|
||||
* plug-in detects that the given state was associated to an older version of the plug-in, or to a
|
||||
* plug-in to replace (for ex. migrating VST2 => VST3), with a different set of parameter IDs, then
|
||||
* the host could remap any used parameters like automation by asking the IRemapParamID interface
|
||||
* (which extends IEditController).
|
||||
* See IRemapParamID
|
||||
* [SDK 3.7.11] */
|
||||
* The Plug-in informs the host that its parameters ID has changed. This has to be called by the
|
||||
* edit controller in the method setComponentState or setState (during projects loading) when the
|
||||
* plug-in detects that the given state was associated to an older version of the plug-in, or to a
|
||||
* plug-in to replace (for ex. migrating VST2 => VST3), with a different set of parameter IDs, then
|
||||
* the host could remap any used parameters like automation by asking the IRemapParamID interface
|
||||
* (which extends IEditController).
|
||||
* See IRemapParamID
|
||||
* [SDK 3.7.11] */
|
||||
kParamIDMappingChanged = 1 << 11
|
||||
};
|
||||
|
||||
|
|
@ -187,20 +215,21 @@ class IComponentHandler : public FUnknown
|
|||
public:
|
||||
//------------------------------------------------------------------------
|
||||
/** To be called before calling a performEdit (e.g. on mouse-click-down event).
|
||||
This must be called in the UI-Thread context! */
|
||||
virtual tresult PLUGIN_API beginEdit (ParamID id) = 0;
|
||||
* This must be called in the UI-Thread context! */
|
||||
virtual tresult PLUGIN_API beginEdit (ParamID id /*in*/) = 0;
|
||||
|
||||
/** Called between beginEdit and endEdit to inform the handler that a given parameter has a new
|
||||
* value. This must be called in the UI-Thread context! */
|
||||
virtual tresult PLUGIN_API performEdit (ParamID id, ParamValue valueNormalized) = 0;
|
||||
virtual tresult PLUGIN_API performEdit (ParamID id /*in*/,
|
||||
ParamValue valueNormalized /*in*/) = 0;
|
||||
|
||||
/** To be called after calling a performEdit (e.g. on mouse-click-up event).
|
||||
This must be called in the UI-Thread context! */
|
||||
virtual tresult PLUGIN_API endEdit (ParamID id) = 0;
|
||||
* This must be called in the UI-Thread context! */
|
||||
virtual tresult PLUGIN_API endEdit (ParamID id /*in*/) = 0;
|
||||
|
||||
/** Instructs host to restart the component. This must be called in the UI-Thread context!
|
||||
\param flags is a combination of RestartFlags */
|
||||
virtual tresult PLUGIN_API restartComponent (int32 flags) = 0;
|
||||
* @param[in] flags is a combination of RestartFlags */
|
||||
virtual tresult PLUGIN_API restartComponent (int32 flags /*in*/) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
|
|
@ -220,10 +249,11 @@ One part handles:
|
|||
- Setting dirty state of the plug-in
|
||||
- Requesting the host to open the editor
|
||||
|
||||
The other part handles parameter group editing from the plug-in UI. It wraps a set of \ref IComponentHandler::beginEdit /
|
||||
\ref Steinberg::Vst::IComponentHandler::performEdit / \ref Steinberg::Vst::IComponentHandler::endEdit functions (see \ref IComponentHandler)
|
||||
which should use the same timestamp in the host when writing automation.
|
||||
This allows for better synchronizing of multiple parameter changes at once.
|
||||
The other part handles parameter group editing from the plug-in UI. It wraps a set of \ref
|
||||
IComponentHandler::beginEdit / \ref Steinberg::Vst::IComponentHandler::performEdit / \ref
|
||||
Steinberg::Vst::IComponentHandler::endEdit functions (see \ref IComponentHandler) which should use
|
||||
the same timestamp in the host when writing automation. This allows for better synchronizing of
|
||||
multiple parameter changes at once.
|
||||
|
||||
\section IComponentHandler2Example Examples of different use cases
|
||||
|
||||
|
|
@ -269,25 +299,28 @@ hostHandler2->finishGroupEdit ();
|
|||
class IComponentHandler2 : public FUnknown
|
||||
{
|
||||
public:
|
||||
//------------------------------------------------------------------------
|
||||
/** Tells host that the plug-in is dirty (something besides parameters has changed since last save),
|
||||
if true the host should apply a save before quitting. */
|
||||
virtual tresult PLUGIN_API setDirty (TBool state) = 0;
|
||||
//------------------------------------------------------------------------
|
||||
/** Tells host that the plug-in is dirty (something besides parameters has changed since last
|
||||
* save), if true the host should apply a save before quitting. */
|
||||
virtual tresult PLUGIN_API setDirty (TBool state /*in*/) = 0;
|
||||
|
||||
/** Tells host that it should open the plug-in editor the next time it's possible.
|
||||
You should use this instead of showing an alert and blocking the program flow (especially on loading projects). */
|
||||
/** Tells host that it should open the plug-in editor the next time it's possible. You should
|
||||
* use this instead of showing an alert and blocking the program flow (especially on loading
|
||||
* projects). */
|
||||
virtual tresult PLUGIN_API requestOpenEditor (FIDString name = ViewType::kEditor) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------
|
||||
/** Starts the group editing (call before a \ref IComponentHandler::beginEdit),
|
||||
the host will keep the current timestamp at this call and will use it for all \ref IComponentHandler::beginEdit
|
||||
/ \ref IComponentHandler::performEdit / \ref IComponentHandler::endEdit calls until a \ref finishGroupEdit (). */
|
||||
* the host will keep the current timestamp at this call and will use it for all
|
||||
* \ref IComponentHandler::beginEdit, \ref IComponentHandler::performEdit,
|
||||
* \ref IComponentHandler::endEdit calls until a \ref finishGroupEdit (). */
|
||||
virtual tresult PLUGIN_API startGroupEdit () = 0;
|
||||
|
||||
/** Finishes the group editing started by a \ref startGroupEdit (call after a \ref IComponentHandler::endEdit). */
|
||||
/** Finishes the group editing started by a \ref startGroupEdit (call after a \ref
|
||||
* IComponentHandler::endEdit). */
|
||||
virtual tresult PLUGIN_API finishGroupEdit () = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
};
|
||||
|
||||
|
|
@ -322,8 +355,8 @@ class IComponentHandlerBusActivation : public FUnknown
|
|||
public:
|
||||
//------------------------------------------------------------------------
|
||||
/** request the host to activate or deactivate a specific bus. */
|
||||
virtual tresult PLUGIN_API requestBusActivation (MediaType type, BusDirection dir, int32 index,
|
||||
TBool state) = 0;
|
||||
virtual tresult PLUGIN_API requestBusActivation (MediaType type /*in*/, BusDirection dir /*in*/,
|
||||
int32 index /*in*/, TBool state /*in*/) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
|
|
@ -342,10 +375,10 @@ DECLARE_CLASS_IID (IComponentHandlerBusActivation, 0x067D02C1, 0x5B4E274D, 0xA92
|
|||
Allows the plug-in to request the host to create a progress for some specific tasks which take
|
||||
some time. The host can visualize the progress as read-only UI elements. For example,
|
||||
after loading a project where a plug-in needs to load extra
|
||||
data (e.g. samples) in a background thread, this enables the host to get and visualize the current status of the loading
|
||||
progress and to inform the user when the loading is finished.
|
||||
Note: During the progress, the host can unload the plug-in at any time. Make sure that the plug-in
|
||||
supports this use case.
|
||||
data (e.g. samples) in a background thread, this enables the host to get and visualize the current
|
||||
status of the loading progress and to inform the user when the loading is finished. Note: During the
|
||||
progress, the host can unload the plug-in at any time. Make sure that the plug-in supports this use
|
||||
case.
|
||||
|
||||
\section IProgressExample Example
|
||||
|
||||
|
|
@ -356,18 +389,19 @@ supports this use case.
|
|||
|
||||
FUnknownPtr<IProgress> progress (componentHandler);
|
||||
if (progress)
|
||||
progress->start (IProgress::ProgressType::UIBackgroundTask, STR ("Load Samples..."), mProgressID);
|
||||
progress->start (IProgress::ProgressType::UIBackgroundTask, STR ("Load Samples..."),
|
||||
mProgressID);
|
||||
|
||||
// ...
|
||||
myProgressValue += incProgressStep;
|
||||
FUnknownPtr<IProgress> progress (componentHandler);
|
||||
if (progress)
|
||||
progress->update (mProgressID, myProgressValue);
|
||||
progress->update (mProgressID, myProgressValue);
|
||||
|
||||
// ...
|
||||
FUnknownPtr<IProgress> progress (componentHandler);
|
||||
if (progress)
|
||||
progress->finish (mProgressID);
|
||||
progress->finish (mProgressID);
|
||||
\endcode
|
||||
|
||||
\see \ref IComponentHandler
|
||||
|
|
@ -378,20 +412,26 @@ public:
|
|||
//------------------------------------------------------------------------
|
||||
enum ProgressType : uint32
|
||||
{
|
||||
AsyncStateRestoration = 0, ///< plug-in state is restored async (in a background Thread)
|
||||
UIBackgroundTask ///< a plug-in task triggered by a UI action
|
||||
/** plug-in state is restored async (in a background Thread) */
|
||||
AsyncStateRestoration = 0,
|
||||
|
||||
/** a plug-in task triggered by a UI action */
|
||||
UIBackgroundTask
|
||||
};
|
||||
|
||||
using ID = uint64;
|
||||
|
||||
/** Start a new progress of a given type and optional Description. outID is as ID created by the
|
||||
* host to identify this newly created progress (for update and finish method) */
|
||||
virtual tresult PLUGIN_API start (ProgressType type, const tchar* optionalDescription,
|
||||
ID& outID) = 0;
|
||||
virtual tresult PLUGIN_API start (ProgressType type /*in*/,
|
||||
const tchar* optionalDescription /*in*/,
|
||||
ID& outID /*out*/) = 0;
|
||||
|
||||
/** Update the progress value (normValue between [0, 1]) associated to the given id */
|
||||
virtual tresult PLUGIN_API update (ID id, ParamValue normValue) = 0;
|
||||
virtual tresult PLUGIN_API update (ID id /*in*/, ParamValue normValue /*in*/) = 0;
|
||||
|
||||
/** Finish the progress associated to the given id */
|
||||
virtual tresult PLUGIN_API finish (ID id) = 0;
|
||||
virtual tresult PLUGIN_API finish (ID id /*in*/) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
|
|
@ -406,55 +446,67 @@ DECLARE_CLASS_IID (IProgress, 0x00C9DC5B, 0x9D904254, 0x91A388C8, 0xB4E91B69)
|
|||
- [released: 3.0.0]
|
||||
- [mandatory]
|
||||
|
||||
The controller part of an effect or instrument with parameter handling (export, definition, conversion...).
|
||||
\see \ref IComponent::getControllerClassId, \ref IMidiMapping
|
||||
The controller part of an effect or instrument with parameter handling (export, definition,
|
||||
conversion, ...). \see \ref IComponent::getControllerClassId, \ref IMidiMapping
|
||||
*/
|
||||
class IEditController : public IPluginBase
|
||||
{
|
||||
public:
|
||||
//------------------------------------------------------------------------
|
||||
/** Receives the component state. */
|
||||
virtual tresult PLUGIN_API setComponentState (IBStream* state) = 0;
|
||||
virtual tresult PLUGIN_API setComponentState (IBStream* state /*in*/) = 0;
|
||||
|
||||
/** Sets the controller state. */
|
||||
virtual tresult PLUGIN_API setState (IBStream* state) = 0;
|
||||
virtual tresult PLUGIN_API setState (IBStream* state /*in*/) = 0;
|
||||
|
||||
/** Gets the controller state. */
|
||||
virtual tresult PLUGIN_API getState (IBStream* state) = 0;
|
||||
virtual tresult PLUGIN_API getState (IBStream* state /*inout*/) = 0;
|
||||
|
||||
// parameters -------------------------
|
||||
/** Returns the number of parameters exported. */
|
||||
virtual int32 PLUGIN_API getParameterCount () = 0;
|
||||
|
||||
/** Gets for a given index the parameter information. */
|
||||
virtual tresult PLUGIN_API getParameterInfo (int32 paramIndex, ParameterInfo& info /*out*/) = 0;
|
||||
virtual tresult PLUGIN_API getParameterInfo (int32 paramIndex /*in*/,
|
||||
ParameterInfo& info /*out*/) = 0;
|
||||
|
||||
/** Gets for a given paramID and normalized value its associated string representation. */
|
||||
virtual tresult PLUGIN_API getParamStringByValue (ParamID id, ParamValue valueNormalized /*in*/, String128 string /*out*/) = 0;
|
||||
virtual tresult PLUGIN_API getParamStringByValue (ParamID id /*in*/,
|
||||
ParamValue valueNormalized /*in*/,
|
||||
String128 string /*out*/) = 0;
|
||||
|
||||
/** Gets for a given paramID and string its normalized value. */
|
||||
virtual tresult PLUGIN_API getParamValueByString (ParamID id, TChar* string /*in*/, ParamValue& valueNormalized /*out*/) = 0;
|
||||
virtual tresult PLUGIN_API getParamValueByString (ParamID id /*in*/, TChar* string /*in*/,
|
||||
ParamValue& valueNormalized /*out*/) = 0;
|
||||
|
||||
/** Returns for a given paramID and a normalized value its plain representation
|
||||
(for example -6 for -6dB - see \ref vst3AutomationIntro). */
|
||||
virtual ParamValue PLUGIN_API normalizedParamToPlain (ParamID id, ParamValue valueNormalized) = 0;
|
||||
/** Returns for a given paramID and a plain value its normalized value. (see \ref vst3AutomationIntro) */
|
||||
virtual ParamValue PLUGIN_API plainParamToNormalized (ParamID id, ParamValue plainValue) = 0;
|
||||
* (for example -6 for -6dB - see \ref vst3AutomationIntro). */
|
||||
virtual ParamValue PLUGIN_API normalizedParamToPlain (ParamID id /*in*/,
|
||||
ParamValue valueNormalized /*in*/) = 0;
|
||||
|
||||
/** Returns for a given paramID and a plain value its normalized value. (see \ref
|
||||
* vst3AutomationIntro). */
|
||||
virtual ParamValue PLUGIN_API plainParamToNormalized (ParamID id /*in*/,
|
||||
ParamValue plainValue /*in*/) = 0;
|
||||
|
||||
/** Returns the normalized value of the parameter associated to the paramID. */
|
||||
virtual ParamValue PLUGIN_API getParamNormalized (ParamID id) = 0;
|
||||
/** Sets the normalized value to the parameter associated to the paramID. The controller must never
|
||||
pass this value-change back to the host via the IComponentHandler. It should update the according
|
||||
GUI element(s) only!*/
|
||||
virtual tresult PLUGIN_API setParamNormalized (ParamID id, ParamValue value) = 0;
|
||||
virtual ParamValue PLUGIN_API getParamNormalized (ParamID id /*in*/) = 0;
|
||||
|
||||
/** Sets the normalized value to the parameter associated to the paramID. The controller must
|
||||
* never pass this value-change back to the host via the IComponentHandler.
|
||||
* It should update the according GUI element(s) only! */
|
||||
virtual tresult PLUGIN_API setParamNormalized (ParamID id /*in*/, ParamValue value /*in*/) = 0;
|
||||
|
||||
// handler ----------------------------
|
||||
/** Gets from host a handler which allows the Plugin-in to communicate with the host.
|
||||
Note: This is mandatory if the host is using the IEditController! */
|
||||
virtual tresult PLUGIN_API setComponentHandler (IComponentHandler* handler) = 0;
|
||||
* Note: This is mandatory if the host is using the IEditController! */
|
||||
virtual tresult PLUGIN_API setComponentHandler (IComponentHandler* handler /*in*/) = 0;
|
||||
|
||||
// view -------------------------------
|
||||
/** Creates the editor view of the plug-in, currently only "editor" is supported, see \ref ViewType.
|
||||
The life time of the editor view will never exceed the life time of this controller instance. */
|
||||
virtual IPlugView* PLUGIN_API createView (FIDString name) = 0;
|
||||
/** Creates the editor view of the plug-in, currently only "editor" is supported, see \ref
|
||||
* ViewType. The life time of the editor view will never exceed the life time of this controller
|
||||
* instance. */
|
||||
virtual IPlugView* PLUGIN_API createView (FIDString name /*in*/) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
|
|
@ -462,23 +514,23 @@ public:
|
|||
|
||||
DECLARE_CLASS_IID (IEditController, 0xDCD7BBE3, 0x7742448D, 0xA874AACC, 0x979C759E)
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/** \defgroup vst3typedef VST 3 Data Types */
|
||||
/*@{*/
|
||||
//------------------------------------------------------------------------
|
||||
/** Knob Mode Type */
|
||||
using KnobMode = int32;
|
||||
/*@}*/
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/** Knob Mode */
|
||||
enum KnobModes
|
||||
enum KnobModes : KnobMode
|
||||
{
|
||||
kCircularMode = 0, ///< Circular with jump to clicked position
|
||||
kRelativCircularMode, ///< Circular without jump to clicked position
|
||||
kLinearMode ///< Linear: depending on vertical movement
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/** \defgroup vst3typedef VST 3 Data Types */
|
||||
/*@{*/
|
||||
//------------------------------------------------------------------------
|
||||
/** Knob Mode Type */
|
||||
typedef int32 KnobMode;
|
||||
/*@}*/
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/** Edit controller component interface extension: Vst::IEditController2
|
||||
\ingroup vstIPlug vst310
|
||||
|
|
@ -495,20 +547,21 @@ and to open the plug-in about box or help documentation.
|
|||
class IEditController2 : public FUnknown
|
||||
{
|
||||
public:
|
||||
/** Host could set the Knob Mode for the plug-in. Return kResultFalse means not supported mode. \see KnobModes. */
|
||||
virtual tresult PLUGIN_API setKnobMode (KnobMode mode) = 0;
|
||||
/** Host could set the Knob Mode for the plug-in. Return kResultFalse means not supported mode.
|
||||
* \see KnobModes. */
|
||||
virtual tresult PLUGIN_API setKnobMode (KnobMode mode /*in*/) = 0;
|
||||
|
||||
/** Host could ask to open the plug-in help (could be: opening a PDF document or link to a web page).
|
||||
The host could call it with onlyCheck set to true for testing support of open Help.
|
||||
Return kResultFalse means not supported function. */
|
||||
virtual tresult PLUGIN_API openHelp (TBool onlyCheck) = 0;
|
||||
/** Host could ask to open the plug-in help (could be: opening a PDF document or link to a web
|
||||
* page). The host could call it with onlyCheck set to true for testing support of open Help.
|
||||
* Return kResultFalse means not supported function. */
|
||||
virtual tresult PLUGIN_API openHelp (TBool onlyCheck /*in*/) = 0;
|
||||
|
||||
/** Host could ask to open the plug-in about box.
|
||||
The host could call it with onlyCheck set to true for testing support of open AboutBox.
|
||||
Return kResultFalse means not supported function. */
|
||||
virtual tresult PLUGIN_API openAboutBox (TBool onlyCheck) = 0;
|
||||
* The host could call it with onlyCheck set to true for testing support of open AboutBox.
|
||||
* Return kResultFalse means not supported function. */
|
||||
virtual tresult PLUGIN_API openAboutBox (TBool onlyCheck /*in*/) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
};
|
||||
|
||||
|
|
@ -527,13 +580,13 @@ restrictions that can be avoided in software. Controller data in particular come
|
|||
and often ignored semantics. On top of this they can interfere with regular parameter automation and
|
||||
the host is unaware of what happens in the plug-in when passing MIDI controllers directly.
|
||||
|
||||
So any functionality that is to be controlled by MIDI controllers must be exported as regular parameter.
|
||||
The host will transform incoming MIDI controller data using this interface and transmit them as regular
|
||||
parameter change. This allows the host to automate them in the same way as other parameters.
|
||||
CtrlNumber can be a typical MIDI controller value extended to some others values like pitchbend or
|
||||
aftertouch (see \ref ControllerNumbers).
|
||||
If the mapping has changed, the plug-in must call IComponentHandler::restartComponent (kMidiCCAssignmentChanged)
|
||||
to inform the host about this change.
|
||||
So any functionality that is to be controlled by MIDI controllers must be exported as regular
|
||||
parameter. The host will transform incoming MIDI controller data using this interface and transmit
|
||||
them as regular parameter change. This allows the host to automate them in the same way as other
|
||||
parameters. CtrlNumber can be a typical MIDI controller value extended to some others values like
|
||||
pitchbend or aftertouch (see \ref ControllerNumbers). If the mapping has changed, the plug-in must
|
||||
call IComponentHandler::restartComponent (kMidiCCAssignmentChanged) to inform the host about this
|
||||
change.
|
||||
|
||||
\section IMidiMappingExample Example
|
||||
|
||||
|
|
@ -542,28 +595,33 @@ to inform the host about this change.
|
|||
// in myeditcontroller.h
|
||||
class MyEditController: public EditControllerEx1, public IMidiMapping
|
||||
{
|
||||
//...
|
||||
//---IMidiMapping---------------------------
|
||||
tresult PLUGIN_API getMidiControllerAssignment (int32 busIndex, int16 channel, CtrlNumber midiControllerNumber, ParamID& id) SMTG_OVERRIDE;
|
||||
//---Interface---------
|
||||
OBJ_METHODS (MyEditController, EditControllerEx1)
|
||||
DEFINE_INTERFACES
|
||||
DEF_INTERFACE (IMidiMapping)
|
||||
END_DEFINE_INTERFACES (MyEditController)
|
||||
REFCOUNT_METHODS (MyEditController)
|
||||
//...
|
||||
//---IMidiMapping---------------------------
|
||||
tresult PLUGIN_API getMidiControllerAssignment (int32 busIndex, int16 channel,
|
||||
CtrlNumber midiControllerNumber,
|
||||
ParamID& id) override;
|
||||
//---Interface---------
|
||||
OBJ_METHODS (MyEditController, EditControllerEx1)
|
||||
DEFINE_INTERFACES
|
||||
DEF_INTERFACE (IMidiMapping)
|
||||
END_DEFINE_INTERFACES (MyEditController)
|
||||
REFCOUNT_METHODS (MyEditController)
|
||||
};
|
||||
|
||||
//--------------------------------------
|
||||
// in myeditcontroller.cpp
|
||||
tresult PLUGIN_API MyEditController::getMidiControllerAssignment (int32 busIndex, int16 midiChannel, CtrlNumber midiControllerNumber, ParamID& tag)
|
||||
tresult PLUGIN_API MyEditController::getMidiControllerAssignment (int32 busIndex,
|
||||
int16 midiChannel,
|
||||
CtrlNumber midiControllerNumber,
|
||||
ParamID& tag)
|
||||
{
|
||||
// for my first Event bus and for MIDI channel 0 and for MIDI CC Volume only
|
||||
if (busIndex == 0 && midiChannel == 0 && midiControllerNumber == kCtrlVolume)
|
||||
{
|
||||
tag = kGainId;
|
||||
return kResultTrue;
|
||||
}
|
||||
return kResultFalse;
|
||||
// for my first Event bus and for MIDI channel 0 and for MIDI CC Volume only
|
||||
if (busIndex == 0 && midiChannel == 0 && midiControllerNumber == kCtrlVolume)
|
||||
{
|
||||
tag = kGainId;
|
||||
return kResultTrue;
|
||||
}
|
||||
return kResultFalse;
|
||||
}
|
||||
\endcode
|
||||
|
||||
|
|
@ -571,16 +629,20 @@ tresult PLUGIN_API MyEditController::getMidiControllerAssignment (int32 busIndex
|
|||
class IMidiMapping : public FUnknown
|
||||
{
|
||||
public:
|
||||
/** Gets an (preferred) associated ParamID for a given Input Event Bus index, channel and MIDI Controller.
|
||||
* @param[in] busIndex - index of Input Event Bus
|
||||
* @param[in] channel - channel of the bus
|
||||
* @param[in] midiControllerNumber - see \ref ControllerNumbers for expected values (could be bigger than 127)
|
||||
* @param[in] id - return the associated ParamID to the given midiControllerNumber
|
||||
*/
|
||||
virtual tresult PLUGIN_API getMidiControllerAssignment (int32 busIndex, int16 channel,
|
||||
CtrlNumber midiControllerNumber, ParamID& id/*out*/) = 0;
|
||||
/** Gets an (preferred) associated ParamID for a given Input Event Bus index, channel and MIDI
|
||||
* Controller.
|
||||
* @param[in] busIndex - index of Input Event Bus
|
||||
* @param[in] channel - channel of the bus
|
||||
* @param[in] midiControllerNumber - see \ref ControllerNumbers for expected values (could be
|
||||
* bigger than 127)
|
||||
* @param[out] id - return the associated ParamID to the given midiControllerNumber
|
||||
*/
|
||||
virtual tresult PLUGIN_API getMidiControllerAssignment (int32 busIndex /*in*/,
|
||||
int16 channel /*in*/,
|
||||
CtrlNumber midiControllerNumber /*in*/,
|
||||
ParamID& id /*out*/) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
};
|
||||
|
||||
|
|
@ -595,9 +657,9 @@ DECLARE_CLASS_IID (IMidiMapping, 0xDF0FF9F7, 0x49B74669, 0xB63AB732, 0x7ADBF5E5)
|
|||
- [optional]
|
||||
|
||||
If this interface is implemented by the edit controller, and when performing edits from outside
|
||||
the plug-in (host / remote) of a not automatable and not read-only, and not hidden flagged parameter (kind of helper parameter),
|
||||
the host will start with a beginEditFromHost before calling setParamNormalized and end with an endEditFromHost.
|
||||
Here the sequence that the host will call:
|
||||
the plug-in (host / remote) of a not automatable and not read-only, and not hidden flagged parameter
|
||||
(kind of helper parameter), the host will start with a beginEditFromHost before calling
|
||||
setParamNormalized and end with an endEditFromHost. Here the sequence that the host will call:
|
||||
|
||||
\section IEditControllerExample Example
|
||||
|
||||
|
|
@ -610,18 +672,19 @@ plugEditController->setParamNormalized (id, value + 0.1);
|
|||
plugEditController->endEditFromHost (id);
|
||||
\endcode
|
||||
|
||||
\see \ref IEditController
|
||||
\see \ref IEditController
|
||||
*/
|
||||
class IEditControllerHostEditing : public FUnknown
|
||||
{
|
||||
public:
|
||||
/** Called before a setParamNormalized sequence, a endEditFromHost will be call at the end of the editing action. */
|
||||
virtual tresult PLUGIN_API beginEditFromHost (ParamID paramID) = 0;
|
||||
/** Called before a setParamNormalized sequence, a endEditFromHost will be call at the end of
|
||||
* the editing action. */
|
||||
virtual tresult PLUGIN_API beginEditFromHost (ParamID paramID /*in*/) = 0;
|
||||
|
||||
/** Called after a beginEditFromHost and a sequence of setParamNormalized. */
|
||||
virtual tresult PLUGIN_API endEditFromHost (ParamID paramID) = 0;
|
||||
virtual tresult PLUGIN_API endEditFromHost (ParamID paramID /*in*/) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
};
|
||||
|
||||
|
|
@ -641,7 +704,7 @@ class IComponentHandlerSystemTime : public FUnknown
|
|||
public:
|
||||
//------------------------------------------------------------------------
|
||||
/** get the current systemTime (the same as the one used in ProcessContext::systemTime). */
|
||||
virtual tresult PLUGIN_API getSystemTime (int64& systemTime) = 0;
|
||||
virtual tresult PLUGIN_API getSystemTime (int64& systemTime /*out*/) = 0;
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -54,8 +54,10 @@ public:
|
|||
* @param[in] pluginToReplaceUID - TUID of plug-in (processor) that will be replaced
|
||||
* @param[in] oldParamID - paramID (or index for VST 2 plug-ins) to be replaced
|
||||
* @param[out] newParamID - contains the associated paramID to be used
|
||||
* Return kResultTrue means that a compatible parameter is available
|
||||
* Return kResultFalse means that NO compatible parameter is available
|
||||
*
|
||||
* @return kResultTrue if a compatible parameter is available (newParamID has the appropriate
|
||||
* value, it could be the same than oldParamID), or kResultFalse if no compatible parameter is
|
||||
* available (newParamID is undefined)
|
||||
*/
|
||||
virtual tresult PLUGIN_API getCompatibleParamID (const TUID pluginToReplaceUID /*in*/,
|
||||
ParamID oldParamID /*in*/,
|
||||
|
|
@ -66,6 +68,7 @@ public:
|
|||
|
||||
DECLARE_CLASS_IID (IRemapParamID, 0x2B88021E, 0x6286B646, 0xB49DF76A, 0x5663061C)
|
||||
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // namespace Vst
|
||||
} // namespace Steinberg
|
||||
|
|
|
|||
|
|
@ -271,16 +271,20 @@ const SpeakerArrangement k70_2 = kSpeakerL | kSpeakerR | kSpeakerC | kSpeake
|
|||
const SpeakerArrangement k71_2 = k70_2 | kSpeakerLfe;
|
||||
const SpeakerArrangement k91Atmos = k71_2; // 9.1 Dolby Atmos (3D)
|
||||
|
||||
/** L R C Ls Rs Sl Sr Tfl Tfr */ // 7.0.2 (~ITU 2+7+0.0)
|
||||
const SpeakerArrangement k70_2_TF = k70Music | kSpeakerTfl | kSpeakerTfr;
|
||||
|
||||
/** L R C Lfe Ls Rs Sl Sr Tfl Tfr */ // 7.1.2 (~ITU 2+7+0.1)
|
||||
const SpeakerArrangement k71_2_TF = k70_2_TF | kSpeakerLfe;
|
||||
|
||||
/** L R C Ls Rs Sl Sr Tfl Tfr Trc */ // 7.0.3 (ITU 3+7+0.0 Sound System F)
|
||||
const SpeakerArrangement k70_3 = kSpeakerL | kSpeakerR | kSpeakerC | kSpeakerLs | kSpeakerRs |
|
||||
kSpeakerSl | kSpeakerSr | kSpeakerTfl | kSpeakerTfr | kSpeakerTrc;
|
||||
const SpeakerArrangement k70_3 = k70_2_TF | kSpeakerTrc;
|
||||
|
||||
/** L R C Lfe Ls Rs Sl Sr Tfl Tfr Trc Lfe2 */ // 7.2.3 (ITU 3+7+0.2 Sound System F)
|
||||
const SpeakerArrangement k72_3 = k70_3 | kSpeakerLfe | kSpeakerLfe2;
|
||||
|
||||
/** L R C Ls Rs Sl Sr Tfl Tfr Trl Trr */ // 7.0.4 (ITU 4+7+0.0 Sound System J)
|
||||
const SpeakerArrangement k70_4 = kSpeakerL | kSpeakerR | kSpeakerC | kSpeakerLs | kSpeakerRs | kSpeakerSl | kSpeakerSr |
|
||||
kSpeakerTfl | kSpeakerTfr | kSpeakerTrl | kSpeakerTrr;
|
||||
const SpeakerArrangement k70_4 = k70_2_TF | kSpeakerTrl | kSpeakerTrr;
|
||||
|
||||
/** L R C Lfe Ls Rs Sl Sr Tfl Tfr Trl Trr */ // 7.1.4 (ITU 4+7+0.1 Sound System J)
|
||||
const SpeakerArrangement k71_4 = k70_4 | kSpeakerLfe;
|
||||
|
|
@ -502,6 +506,8 @@ const CString kString50_4_1 = "5.0.4.1";
|
|||
const CString kString51_4_1 = "5.1.4.1";
|
||||
const CString kString70_2 = "7.0.2";
|
||||
const CString kString71_2 = "7.1.2";
|
||||
const CString kString70_2_TF = "7.0.2 Top Front";
|
||||
const CString kString71_2_TF = "7.1.2 Top Front";
|
||||
const CString kString70_3 = "7.0.3";
|
||||
const CString kString72_3 = "7.2.3";
|
||||
const CString kString70_4 = "7.0.4";
|
||||
|
|
@ -605,6 +611,8 @@ const CString kString50_4_1S = "L R C Ls Rs Tfl Tfr Trl Trr Bfc";
|
|||
const CString kString51_4_1S = "L R C LFE Ls Rs Tfl Tfr Trl Trr Bfc";
|
||||
const CString kString70_2S = "L R C Ls Rs Sl Sr Tsl Tsr";
|
||||
const CString kString71_2S = "L R C LFE Ls Rs Sl Sr Tsl Tsr";
|
||||
const CString kString70_2_TFS = "L R C Ls Rs Sl Sr Tfl Tfr";
|
||||
const CString kString71_2_TFS = "L R C LFE Ls Rs Sl Sr Tfl Tfr";
|
||||
const CString kString70_3S = "L R C Ls Rs Sl Sr Tfl Tfr Trc";
|
||||
const CString kString72_3S = "L R C LFE Ls Rs Sl Sr Tfl Tfr Trc LFE2";
|
||||
const CString kString70_4S = "L R C Ls Rs Sl Sr Tfl Tfr Trl Trr";
|
||||
|
|
@ -939,6 +947,10 @@ inline SpeakerArrangement getSpeakerArrangementFromString (CString arrStr)
|
|||
return k70_2;
|
||||
if (!strcmp8 (arrStr, kString71_2))
|
||||
return k71_2;
|
||||
if (!strcmp8 (arrStr, kString70_2_TF))
|
||||
return k70_2_TF;
|
||||
if (!strcmp8 (arrStr, kString71_2_TF))
|
||||
return k71_2_TF;
|
||||
if (!strcmp8 (arrStr, kString70_3))
|
||||
return k70_3;
|
||||
if (!strcmp8 (arrStr, kString72_3))
|
||||
|
|
@ -1097,6 +1109,8 @@ inline CString getSpeakerArrangementString (SpeakerArrangement arr, bool withSpe
|
|||
case k51_6: return withSpeakersName ? kString51_6S : kString51_6;
|
||||
case k70_2: return withSpeakersName ? kString70_2S : kString70_2;
|
||||
case k71_2: return withSpeakersName ? kString71_2S : kString71_2;
|
||||
case k70_2_TF: return withSpeakersName ? kString70_2_TFS : kString70_2_TF;
|
||||
case k71_2_TF: return withSpeakersName ? kString71_2_TFS : kString71_2_TF;
|
||||
case k70_3: return withSpeakersName ? kString70_3S : kString70_3;
|
||||
case k72_3: return withSpeakersName ? kString72_3S : kString72_3;
|
||||
case k70_4: return withSpeakersName ? kString70_4S : kString70_4;
|
||||
|
|
|
|||
|
|
@ -24,17 +24,18 @@ namespace Vst {
|
|||
//------------------------------------------------------------------------
|
||||
/** VST 3 SDK Version */
|
||||
#ifndef kVstVersionString
|
||||
#define kVstVersionString "VST 3.7.11" ///< SDK version for PClassInfo2
|
||||
#define kVstVersionString "VST 3.7.12" ///< SDK version for PClassInfo2
|
||||
#endif
|
||||
|
||||
#define kVstVersionMajor 3
|
||||
#define kVstVersionMinor 7
|
||||
#define kVstVersionSub 11
|
||||
#define kVstVersionSub 12
|
||||
|
||||
#define VST_VERSION ((kVstVersionMajor << 16) | (kVstVersionMinor << 8) | kVstVersionSub)
|
||||
|
||||
// Versions History which allows to write such code:
|
||||
// #if VST_VERSION >= VST_3_6_5_VERSION
|
||||
#define VST_3_7_12_VERSION 0x03070C
|
||||
#define VST_3_7_11_VERSION 0x03070B
|
||||
#define VST_3_7_10_VERSION 0x03070A
|
||||
#define VST_3_7_9_VERSION 0x030709
|
||||
|
|
@ -124,6 +125,7 @@ static SMTG_CONSTEXPR const uint32 SDKVersion =
|
|||
|
||||
// Versions History which allows to write such code:
|
||||
// if constexpr (SDKVersion >= SDKVersion_3_6_5) { ... }
|
||||
static SMTG_CONSTEXPR const uint32 SDKVersion_3_7_12 = VST_3_7_12_VERSION;
|
||||
static SMTG_CONSTEXPR const uint32 SDKVersion_3_7_11 = VST_3_7_11_VERSION;
|
||||
static SMTG_CONSTEXPR const uint32 SDKVersion_3_7_10 = VST_3_7_10_VERSION;
|
||||
static SMTG_CONSTEXPR const uint32 SDKVersion_3_7_9 = VST_3_7_9_VERSION;
|
||||
|
|
|
|||
|
|
@ -353,7 +353,7 @@ int run (int argc, char* argv[])
|
|||
{
|
||||
writeToFile = true;
|
||||
#if SMTG_OS_WINDOWS
|
||||
auto tmp = VST3::StringConvert::convert (valueMap[optOutputPath]);
|
||||
auto tmp = Vst::StringConvert::convert (valueMap[optOutputPath]);
|
||||
auto outputFile = reinterpret_cast<const wchar_t*> (tmp.data ());
|
||||
#else
|
||||
auto outputFile = valueMap[optOutputPath];
|
||||
|
|
@ -400,7 +400,7 @@ Utf8Args toUtf8Args (int argc, wchar_t* wargv[])
|
|||
for (int i = 0; i < argc; i++)
|
||||
{
|
||||
auto str = reinterpret_cast<const Steinberg::Vst::TChar*> (wargv[i]);
|
||||
utf8Args.push_back (VST3::StringConvert::convert (str));
|
||||
utf8Args.push_back (Steinberg::Vst::StringConvert::convert (str));
|
||||
}
|
||||
|
||||
return utf8Args;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,121 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Flags : clang-format SMTGSequencer
|
||||
// Project : VST SDK
|
||||
//
|
||||
// Category : Helpers
|
||||
// Filename : public.sdk/source/common/commonstringconvert.cpp
|
||||
// Created by : Steinberg, 07/2024
|
||||
// Description : c++11 unicode string convert functions
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// LICENSE
|
||||
// (c) 2024, 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.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "commonstringconvert.h"
|
||||
|
||||
#include <codecvt>
|
||||
#include <istream>
|
||||
#include <locale>
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
#elif defined(_MSC_VER)
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4996)
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace Steinberg {
|
||||
namespace StringConvert {
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace {
|
||||
|
||||
#if defined(_MSC_VER) && _MSC_VER >= 1900
|
||||
#define USE_WCHAR_AS_UTF16TYPE
|
||||
using UTF16Type = wchar_t;
|
||||
#else
|
||||
using UTF16Type = char16_t;
|
||||
#endif
|
||||
|
||||
using Converter = std::wstring_convert<std::codecvt_utf8_utf16<UTF16Type>, UTF16Type>;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
Converter& converter ()
|
||||
{
|
||||
static Converter conv;
|
||||
return conv;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // anonymous
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
std::u16string convert (const std::string& utf8Str)
|
||||
{
|
||||
#if defined(USE_WCHAR_AS_UTF16TYPE)
|
||||
auto wstr = converter ().from_bytes (utf8Str);
|
||||
return {wstr.data (), wstr.data () + wstr.size ()};
|
||||
#else
|
||||
return converter ().from_bytes (utf8Str);
|
||||
#endif
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
std::string convert (const std::u16string& str)
|
||||
{
|
||||
return converter ().to_bytes (reinterpret_cast<const UTF16Type*> (str.data ()),
|
||||
reinterpret_cast<const UTF16Type*> (str.data () + str.size ()));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
std::string convert (const char* str, uint32_t max)
|
||||
{
|
||||
std::string result;
|
||||
if (str)
|
||||
{
|
||||
result.reserve (max);
|
||||
for (uint32_t i = 0; i < max; ++i, ++str)
|
||||
{
|
||||
if (*str == 0)
|
||||
break;
|
||||
result += *str;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // StringConvert
|
||||
} // Steinberg
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#elif defined(_MSC_VER)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// Flags : clang-format SMTGSequencer
|
||||
// Project : VST SDK
|
||||
//
|
||||
// Category : stringconvert
|
||||
// Filename : public.sdk/source/common/commonstringconvert.h
|
||||
// Created by : Steinberg, 07/2024
|
||||
// Description : read file routine
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// LICENSE
|
||||
// (c) 2024, 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 <cstdint>
|
||||
#include <string>
|
||||
|
||||
namespace Steinberg {
|
||||
namespace StringConvert {
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* convert an UTF-8 string to an UTF-16 string
|
||||
*
|
||||
* @param utf8Str UTF-8 string
|
||||
*
|
||||
* @return UTF-16 string
|
||||
*/
|
||||
std::u16string convert (const std::string& utf8Str);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* convert an UTF-16 string to an UTF-8 string
|
||||
*
|
||||
* @param str UTF-16 string
|
||||
*
|
||||
* @return UTF-8 string
|
||||
*/
|
||||
std::string convert (const std::u16string& str);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* convert a ASCII string buffer to an UTF-8 string
|
||||
*
|
||||
* @param str ASCII string buffer
|
||||
* @param max maximum characters in str
|
||||
*
|
||||
* @return UTF-8 string
|
||||
*/
|
||||
std::string convert (const char* str, uint32_t max);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* convert a number to an UTF-16 string
|
||||
*
|
||||
* @param value number
|
||||
*
|
||||
* @return UTF-16 string
|
||||
*/
|
||||
template <typename NumberT>
|
||||
std::u16string toString (NumberT value)
|
||||
{
|
||||
auto u8str = std::to_string (value);
|
||||
return StringConvert::convert (u8str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // namespace StringConvert
|
||||
} // namespace Steinberg
|
||||
|
|
@ -51,7 +51,6 @@ CPluginView::CPluginView (const ViewRect* _rect)
|
|||
//------------------------------------------------------------------------
|
||||
CPluginView::~CPluginView ()
|
||||
{
|
||||
setFrame (nullptr);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -97,4 +96,5 @@ tresult PLUGIN_API CPluginView::getSize (ViewRect* size)
|
|||
return kInvalidArgument;
|
||||
}
|
||||
|
||||
} // end of namespace
|
||||
//------------------------------------------------------------------------
|
||||
} // namespace Steinberg
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// LICENSE
|
||||
// (c) 2023, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||
// (c) 2024, 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:
|
||||
|
|
@ -40,11 +40,14 @@
|
|||
#include "pluginterfaces/base/fplatform.h"
|
||||
|
||||
#if SMTG_OS_WINDOWS
|
||||
#include "public.sdk/source/vst/utility/stringconvert.h"
|
||||
#include "commonstringconvert.h"
|
||||
#endif
|
||||
|
||||
#include <fstream>
|
||||
|
||||
#if !SMTG_CPP17
|
||||
#include <sstream>
|
||||
#endif
|
||||
|
||||
namespace Steinberg {
|
||||
|
||||
|
|
@ -52,7 +55,7 @@ namespace Steinberg {
|
|||
std::string readFile (const std::string& path)
|
||||
{
|
||||
#if SMTG_OS_WINDOWS
|
||||
auto u16Path = VST3::StringConvert::convert (path);
|
||||
auto u16Path = StringConvert::convert (path);
|
||||
std::ifstream file (reinterpret_cast<const wchar_t*> (u16Path.data ()),
|
||||
std::ios_base::in | std::ios_base::binary);
|
||||
#else
|
||||
|
|
@ -74,7 +77,7 @@ std::string readFile (const std::string& path)
|
|||
std::stringstream buffer;
|
||||
buffer << file.rdbuf ();
|
||||
return buffer.str ();
|
||||
#endif
|
||||
#endif // SMTG_CPP17
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// LICENSE
|
||||
// (c) 2023, Steinberg Media Technologies GmbH, All Rights Reserved
|
||||
// (c) 2024, 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:
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ HostApplication::HostApplication ()
|
|||
//-----------------------------------------------------------------------------
|
||||
tresult PLUGIN_API HostApplication::getName (String128 name)
|
||||
{
|
||||
return VST3::StringConvert::convert ("My VST3 HostApplication", name) ? kResultTrue :
|
||||
return StringConvert::convert ("My VST3 HostApplication", name) ? kResultTrue :
|
||||
kInternalError;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@
|
|||
#include "module.h"
|
||||
#include "public.sdk/source/vst/utility/stringconvert.h"
|
||||
#include "public.sdk/source/vst/utility/optional.h"
|
||||
#include "pluginterfaces/base/funknownimpl.h"
|
||||
#include <sstream>
|
||||
#include <utility>
|
||||
|
||||
|
|
@ -69,18 +70,21 @@ FactoryInfo& FactoryInfo::operator= (PFactoryInfo&& other) noexcept
|
|||
//------------------------------------------------------------------------
|
||||
std::string FactoryInfo::vendor () const noexcept
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
return StringConvert::convert (info.vendor, PFactoryInfo::kNameSize);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
std::string FactoryInfo::url () const noexcept
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
return StringConvert::convert (info.url, PFactoryInfo::kURLSize);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
std::string FactoryInfo::email () const noexcept
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
return StringConvert::convert (info.email, PFactoryInfo::kEmailSize);
|
||||
}
|
||||
|
||||
|
|
@ -145,8 +149,8 @@ PluginFactory::ClassInfos PluginFactory::classInfos () const noexcept
|
|||
Optional<FactoryInfo> factoryInfo;
|
||||
ClassInfos classes;
|
||||
classes.reserve (count);
|
||||
auto f3 = Steinberg::FUnknownPtr<Steinberg::IPluginFactory3> (factory);
|
||||
auto f2 = Steinberg::FUnknownPtr<Steinberg::IPluginFactory2> (factory);
|
||||
auto f3 = Steinberg::U::cast<Steinberg::IPluginFactory3> (factory);
|
||||
auto f2 = Steinberg::U::cast<Steinberg::IPluginFactory2> (factory);
|
||||
Steinberg::PClassInfo ci;
|
||||
Steinberg::PClassInfo2 ci2;
|
||||
Steinberg::PClassInfoW ci3;
|
||||
|
|
@ -228,6 +232,7 @@ Steinberg::uint32 ClassInfo::classFlags () const noexcept
|
|||
//------------------------------------------------------------------------
|
||||
ClassInfo::ClassInfo (const PClassInfo& info) noexcept
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
data.classID = info.cid;
|
||||
data.cardinality = info.cardinality;
|
||||
data.category = StringConvert::convert (info.category, PClassInfo::kCategorySize);
|
||||
|
|
@ -237,6 +242,7 @@ ClassInfo::ClassInfo (const PClassInfo& info) noexcept
|
|||
//------------------------------------------------------------------------
|
||||
ClassInfo::ClassInfo (const PClassInfo2& info) noexcept
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
data.classID = info.cid;
|
||||
data.cardinality = info.cardinality;
|
||||
data.category = StringConvert::convert (info.category, PClassInfo::kCategorySize);
|
||||
|
|
@ -252,6 +258,7 @@ ClassInfo::ClassInfo (const PClassInfo2& info) noexcept
|
|||
//------------------------------------------------------------------------
|
||||
ClassInfo::ClassInfo (const PClassInfoW& info) noexcept
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
data.classID = info.cid;
|
||||
data.cardinality = info.cardinality;
|
||||
data.category = StringConvert::convert (info.category, PClassInfo::kCategorySize);
|
||||
|
|
|
|||
|
|
@ -35,8 +35,11 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "module.h"
|
||||
#include "../utility/optional.h"
|
||||
#include "../utility/stringconvert.h"
|
||||
#include "public.sdk/source/vst/utility/optional.h"
|
||||
#include "public.sdk/source/vst/utility/stringconvert.h"
|
||||
|
||||
#include "pluginterfaces/base/funknownimpl.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <dlfcn.h>
|
||||
#include <sys/types.h>
|
||||
|
|
@ -62,12 +65,12 @@
|
|||
#include <experimental/filesystem>
|
||||
namespace filesystem = std::experimental::filesystem;
|
||||
|
||||
#else // USE_FILESYSTEM == 0
|
||||
#else // USE_EXPERIMENTAL_FS == 0
|
||||
|
||||
#include <filesystem>
|
||||
namespace filesystem = std::filesystem;
|
||||
|
||||
#endif // USE_FILESYSTEM
|
||||
#endif // USE_EXPERIMENTAL_FS
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
extern "C" {
|
||||
|
|
@ -215,7 +218,7 @@ public:
|
|||
errorDescription = "Calling 'ModuleEntry' failed";
|
||||
return false;
|
||||
}
|
||||
auto f = Steinberg::FUnknownPtr<Steinberg::IPluginFactory> (owned (factoryProc ()));
|
||||
auto f = Steinberg::U::cast<Steinberg::IPluginFactory> (owned (factoryProc ()));
|
||||
if (!f)
|
||||
{
|
||||
errorDescription = "Calling 'GetPluginFactory' returned nullptr";
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ void getApplicationModules (Module::PathList& result)
|
|||
//------------------------------------------------------------------------
|
||||
void getModuleSnapshots (const std::string& path, Module::SnapshotList& result)
|
||||
{
|
||||
auto nsString = [NSString stringWithUTF8String:path.data ()];
|
||||
auto* nsString = [NSString stringWithUTF8String:path.data ()];
|
||||
if (!nsString)
|
||||
return;
|
||||
auto bundleUrl = [NSURL fileURLWithPath:nsString];
|
||||
|
|
@ -372,7 +372,7 @@ Module::SnapshotList Module::getSnapshots (const std::string& modulePath)
|
|||
//------------------------------------------------------------------------
|
||||
Optional<std::string> Module::getModuleInfoPath (const std::string& modulePath)
|
||||
{
|
||||
auto nsString = [NSString stringWithUTF8String:modulePath.data ()];
|
||||
auto* nsString = [NSString stringWithUTF8String:modulePath.data ()];
|
||||
if (!nsString)
|
||||
return {};
|
||||
auto bundleUrl = [NSURL fileURLWithPath:nsString];
|
||||
|
|
|
|||
|
|
@ -34,9 +34,11 @@
|
|||
// OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "../utility/optional.h"
|
||||
#include "../utility/stringconvert.h"
|
||||
#include "module.h"
|
||||
#include "public.sdk/source/vst/utility/optional.h"
|
||||
#include "public.sdk/source/vst/utility/stringconvert.h"
|
||||
|
||||
#include "pluginterfaces/base/funknownimpl.h"
|
||||
|
||||
#include <shlobj.h>
|
||||
#include <windows.h>
|
||||
|
|
@ -168,8 +170,11 @@ public:
|
|||
}
|
||||
|
||||
//--- -----------------------------------------------------------------------
|
||||
HINSTANCE loadAsPackage (const std::string& inPath, const char* archString = architectureString)
|
||||
HINSTANCE loadAsPackage (const std::string& inPath, std::string& errorDescription,
|
||||
const char* archString = architectureString)
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
|
||||
filesystem::path p (inPath);
|
||||
auto filename = p.filename ();
|
||||
p /= "Contents";
|
||||
|
|
@ -179,34 +184,25 @@ public:
|
|||
HINSTANCE instance = LoadLibraryW (reinterpret_cast<LPCWSTR> (wideStr.data ()));
|
||||
#if SMTG_CPU_ARM_64EC
|
||||
if (instance == nullptr)
|
||||
instance = loadAsPackage (inPath, architectureArm64XString);
|
||||
instance = loadAsPackage (inPath, errorDescription, architectureArm64XString);
|
||||
if (instance == nullptr)
|
||||
instance = loadAsPackage (inPath, architectureX64String);
|
||||
instance = loadAsPackage (inPath, errorDescription, architectureX64String);
|
||||
#endif
|
||||
if (instance == nullptr)
|
||||
getLastError (p.string (), errorDescription);
|
||||
return instance;
|
||||
}
|
||||
|
||||
//--- -----------------------------------------------------------------------
|
||||
HINSTANCE loadAsDll (const std::string& inPath, std::string& errorDescription)
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
|
||||
auto wideStr = StringConvert::convert (inPath);
|
||||
HINSTANCE instance = LoadLibraryW (reinterpret_cast<LPCWSTR> (wideStr.data ()));
|
||||
if (instance == nullptr)
|
||||
{
|
||||
auto lastError = GetLastError ();
|
||||
LPVOID lpMessageBuffer {nullptr};
|
||||
if (FormatMessageA (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
|
||||
nullptr, lastError, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPSTR)&lpMessageBuffer, 0, nullptr) > 0)
|
||||
{
|
||||
errorDescription = "LoadLibray failed: " + std::string ((char*)lpMessageBuffer);
|
||||
LocalFree (lpMessageBuffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
errorDescription =
|
||||
"LoadLibrary failed with error number : " + std::to_string (lastError);
|
||||
}
|
||||
getLastError (inPath, errorDescription);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -218,7 +214,7 @@ public:
|
|||
//--- -----------------------------------------------------------------------
|
||||
bool load (const std::string& inPath, std::string& errorDescription) override
|
||||
{
|
||||
// filesystem::u8path is deprecated in C++20
|
||||
// filesystem::u8path is deprecated in C++20
|
||||
#if SMTG_CPP20
|
||||
const filesystem::path tmp (inPath);
|
||||
#else
|
||||
|
|
@ -227,7 +223,7 @@ public:
|
|||
if (filesystem::is_directory (tmp))
|
||||
{
|
||||
// try as package (bundle)
|
||||
mModule = loadAsPackage (inPath);
|
||||
mModule = loadAsPackage (inPath, errorDescription);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -250,7 +246,7 @@ public:
|
|||
errorDescription = "Calling 'InitDll' failed";
|
||||
return false;
|
||||
}
|
||||
auto f = Steinberg::FUnknownPtr<Steinberg::IPluginFactory> (owned (factoryProc ()));
|
||||
auto f = Steinberg::U::cast<Steinberg::IPluginFactory> (owned (factoryProc ()));
|
||||
if (!f)
|
||||
{
|
||||
errorDescription = "Calling 'GetPluginFactory' returned nullptr";
|
||||
|
|
@ -261,6 +257,27 @@ public:
|
|||
}
|
||||
|
||||
HINSTANCE mModule {nullptr};
|
||||
|
||||
private:
|
||||
//--- -----------------------------------------------------------------------
|
||||
void getLastError (const std::string& inPath, std::string& errorDescription)
|
||||
{
|
||||
auto lastError = GetLastError ();
|
||||
LPVOID lpMessageBuffer {nullptr};
|
||||
if (FormatMessageA (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, nullptr,
|
||||
lastError, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
|
||||
(LPSTR)&lpMessageBuffer, 0, nullptr) > 0)
|
||||
{
|
||||
errorDescription = "LoadLibraryW failed for path " + inPath + ": " +
|
||||
std::string ((char*)lpMessageBuffer);
|
||||
LocalFree (lpMessageBuffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
errorDescription = "LoadLibraryW failed with error number: " +
|
||||
std::to_string (lastError) + " for path " + inPath;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -323,6 +340,8 @@ bool isFolderSymbolicLink (const filesystem::path& p)
|
|||
//------------------------------------------------------------------------
|
||||
Optional<std::string> getKnownFolder (REFKNOWNFOLDERID folderID)
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
|
||||
PWSTR wideStr {};
|
||||
if (FAILED (SHGetKnownFolderPath (folderID, 0, nullptr, &wideStr)))
|
||||
return {};
|
||||
|
|
@ -378,7 +397,7 @@ VST3::Optional<filesystem::path> resolveShellLink (const filesystem::path& p)
|
|||
void addToPathList (Module::PathList& pathList, const std::string& toAdd)
|
||||
{
|
||||
#if LOG_ENABLE
|
||||
std::cout << "=> add: " << toAdd << "\n";
|
||||
std::cout << "=> add: " << toAdd << "\n";
|
||||
#endif
|
||||
|
||||
pathList.push_back (toAdd);
|
||||
|
|
@ -525,6 +544,8 @@ Module::Ptr Module::create (const std::string& path, std::string& errorDescripti
|
|||
//------------------------------------------------------------------------
|
||||
Module::PathList Module::getModulePaths ()
|
||||
{
|
||||
namespace StringConvert = Steinberg::Vst::StringConvert;
|
||||
|
||||
// find plug-ins located in common/VST3
|
||||
PathList list;
|
||||
if (auto knownFolder = getKnownFolder (FOLDERID_UserProgramFilesCommon))
|
||||
|
|
@ -546,7 +567,7 @@ Module::PathList Module::getModulePaths ()
|
|||
#endif
|
||||
findModules (path, list);
|
||||
}
|
||||
|
||||
|
||||
// find plug-ins located in VST3 (application folder)
|
||||
WCHAR modulePath[kIPPathNameMax];
|
||||
GetModuleFileNameW (nullptr, modulePath, kIPPathNameMax);
|
||||
|
|
|
|||
|
|
@ -12,35 +12,45 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// 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,
|
||||
//
|
||||
// * 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
|
||||
// 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
|
||||
// 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
|
||||
// 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.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#include "stringconvert.h"
|
||||
#include <codecvt>
|
||||
#include <locale>
|
||||
#include <istream>
|
||||
#include "pluginterfaces/base/fplatform.h"
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace VST3 {
|
||||
#if SMTG_OS_WINDOWS
|
||||
#ifndef _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
|
||||
#define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING
|
||||
#endif
|
||||
#endif // SMTG_OS_WINDOWS
|
||||
|
||||
#include "public.sdk/source/vst/utility/stringconvert.h"
|
||||
#include "public.sdk/source/common/commonstringconvert.h"
|
||||
|
||||
#include <codecvt>
|
||||
#include <istream>
|
||||
#include <locale>
|
||||
|
||||
namespace Steinberg {
|
||||
namespace Vst {
|
||||
namespace StringConvert {
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -53,6 +63,14 @@ using UTF16Type = wchar_t;
|
|||
using UTF16Type = char16_t;
|
||||
#endif
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
#elif defined(_MSC_VER)
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4996)
|
||||
#endif
|
||||
|
||||
using Converter = std::wstring_convert<std::codecvt_utf8_utf16<UTF16Type>, UTF16Type>;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -62,18 +80,19 @@ Converter& converter ()
|
|||
return conv;
|
||||
}
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#elif defined(_MSC_VER)
|
||||
#pragma warning(pop)
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // anonymous
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
std::u16string convert (const std::string& utf8Str)
|
||||
{
|
||||
#if defined(USE_WCHAR_AS_UTF16TYPE)
|
||||
auto wstr = converter ().from_bytes (utf8Str);
|
||||
return {wstr.data (), wstr.data () + wstr.size ()};
|
||||
#else
|
||||
return converter ().from_bytes (utf8Str);
|
||||
#endif
|
||||
return Steinberg::StringConvert::convert (utf8Str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -122,27 +141,16 @@ std::string convert (const Steinberg::Vst::TChar* str, uint32_t max)
|
|||
//------------------------------------------------------------------------
|
||||
std::string convert (const std::u16string& str)
|
||||
{
|
||||
return converter ().to_bytes (reinterpret_cast<const UTF16Type*> (str.data ()),
|
||||
reinterpret_cast<const UTF16Type*> (str.data () + str.size ()));
|
||||
return Steinberg::StringConvert::convert (str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
std::string convert (const char* str, uint32_t max)
|
||||
{
|
||||
std::string result;
|
||||
if (str)
|
||||
{
|
||||
result.reserve (max);
|
||||
for (uint32_t i = 0; i < max; ++i, ++str)
|
||||
{
|
||||
if (*str == 0)
|
||||
break;
|
||||
result += *str;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
return Steinberg::StringConvert::convert (str, max);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // String
|
||||
} // VST3
|
||||
} // StringConvert
|
||||
} // Vst
|
||||
} // Steinberg
|
||||
|
|
|
|||
|
|
@ -12,24 +12,24 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
// 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,
|
||||
//
|
||||
// * 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
|
||||
// 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
|
||||
// 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
|
||||
// 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.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
@ -39,19 +39,27 @@
|
|||
#include "pluginterfaces/vst/vsttypes.h"
|
||||
#include <string>
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
namespace VST3 {
|
||||
namespace Steinberg {
|
||||
namespace Vst {
|
||||
namespace StringConvert {
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* convert an UTF-8 string to an UTF-16 string
|
||||
*
|
||||
* @param utf8Str UTF-8 string
|
||||
*
|
||||
* @return UTF-16 string
|
||||
* Forward to Steinberg::StringConvert::convert (...)
|
||||
*/
|
||||
extern std::u16string convert (const std::string& utf8Str);
|
||||
std::u16string convert (const std::string& utf8Str);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* Forward to Steinberg::StringConvert::convert (...)
|
||||
*/
|
||||
std::string convert (const std::u16string& str);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* Forward to Steinberg::StringConvert::convert (...)
|
||||
*/
|
||||
std::string convert (const char* str, uint32_t max);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
|
|
@ -62,7 +70,7 @@ extern std::u16string convert (const std::string& utf8Str);
|
|||
*
|
||||
* @return true on success
|
||||
*/
|
||||
extern bool convert (const std::string& utf8Str, Steinberg::Vst::String128 str);
|
||||
bool convert (const std::string& utf8Str, Steinberg::Vst::String128 str);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
|
|
@ -74,7 +82,7 @@ extern bool convert (const std::string& utf8Str, Steinberg::Vst::String128 str);
|
|||
*
|
||||
* @return true on success
|
||||
*/
|
||||
extern bool convert (const std::string& utf8Str, Steinberg::Vst::TChar* str,
|
||||
bool convert (const std::string& utf8Str, Steinberg::Vst::TChar* str,
|
||||
uint32_t maxCharacters);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -85,7 +93,7 @@ extern bool convert (const std::string& utf8Str, Steinberg::Vst::TChar* str,
|
|||
*
|
||||
* @return UTF-8 string
|
||||
*/
|
||||
extern std::string convert (const Steinberg::Vst::TChar* str);
|
||||
std::string convert (const Steinberg::Vst::TChar* str);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
|
|
@ -96,28 +104,7 @@ extern std::string convert (const Steinberg::Vst::TChar* str);
|
|||
*
|
||||
* @return UTF-8 string
|
||||
*/
|
||||
extern std::string convert (const Steinberg::Vst::TChar* str, uint32_t max);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* convert an UTF-16 string to an UTF-8 string
|
||||
*
|
||||
* @param str UTF-16 string
|
||||
*
|
||||
* @return UTF-8 string
|
||||
*/
|
||||
extern std::string convert (const std::u16string& str);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/**
|
||||
* convert a ASCII string buffer to an UTF-8 string
|
||||
*
|
||||
* @param str ASCII string buffer
|
||||
* @param max maximum characters in str
|
||||
*
|
||||
* @return UTF-8 string
|
||||
*/
|
||||
extern std::string convert (const char* str, uint32_t max);
|
||||
std::string convert (const Steinberg::Vst::TChar* str, uint32_t max);
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // StringConvert
|
||||
|
|
@ -133,15 +120,92 @@ inline const Steinberg::Vst::TChar* toTChar (const std::u16string& str)
|
|||
* convert a number to an UTF-16 string
|
||||
*
|
||||
* @param value number
|
||||
*
|
||||
*
|
||||
* @return UTF-16 string
|
||||
*/
|
||||
template<typename NumberT>
|
||||
template <typename NumberT>
|
||||
std::u16string toString (NumberT value)
|
||||
{
|
||||
auto u8str = std::to_string (value);
|
||||
return StringConvert::convert (u8str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // Vst
|
||||
} // Steinberg
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// Deprecated VST3 namespace
|
||||
//------------------------------------------------------------------------
|
||||
namespace VST3 {
|
||||
namespace StringConvert {
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::StringConvert::convert (...)")
|
||||
inline std::u16string convert (const std::string& utf8Str)
|
||||
{
|
||||
return Steinberg::Vst::StringConvert::convert (utf8Str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::StringConvert::convert (...)")
|
||||
inline std::string convert (const std::u16string& str)
|
||||
{
|
||||
return Steinberg::Vst::StringConvert::convert (str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::StringConvert::convert (...)")
|
||||
inline std::string convert (const char* str, uint32_t max)
|
||||
{
|
||||
return Steinberg::Vst::StringConvert::convert (str, max);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::StringConvert::convert (...)")
|
||||
inline bool convert (const std::string& utf8Str, Steinberg::Vst::String128 str)
|
||||
{
|
||||
return Steinberg::Vst::StringConvert::convert (utf8Str, str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::StringConvert::convert (...)")
|
||||
inline bool convert (const std::string& utf8Str, Steinberg::Vst::TChar* str, uint32_t maxCharacters)
|
||||
{
|
||||
return Steinberg::Vst::StringConvert::convert (utf8Str, str, maxCharacters);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::StringConvert::convert (...)")
|
||||
inline std::string convert (const Steinberg::Vst::TChar* str)
|
||||
{
|
||||
return Steinberg::Vst::StringConvert::convert (str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::StringConvert::convert (...)")
|
||||
inline std::string convert (const Steinberg::Vst::TChar* str, uint32_t max)
|
||||
{
|
||||
return Steinberg::Vst::StringConvert::convert (str, max);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // StringConvert
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::toTChar (...)")
|
||||
inline const Steinberg::Vst::TChar* toTChar (const std::u16string& str)
|
||||
{
|
||||
return Steinberg::Vst::toTChar (str);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
template <typename NumberT>
|
||||
SMTG_DEPRECATED_MSG ("Use Steinberg::Vst::toString (...)")
|
||||
std::u16string toString (NumberT value)
|
||||
{
|
||||
return Steinberg::Vst::toString (value);
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // VST3
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ Optional<Vst2xState> tryVst2StateLoad (Steinberg::IBStream& stream,
|
|||
int32_t numPrograms;
|
||||
if (!(state >> numPrograms))
|
||||
return {};
|
||||
if (numPrograms < 1)
|
||||
if (numPrograms < 1 && fxMagic == bankMagic)
|
||||
return {};
|
||||
|
||||
int32_t currentProgram = 0;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "vstcomponentbase.h"
|
||||
#include "base/source/fstring.h"
|
||||
#include "pluginterfaces/base/funknownimpl.h"
|
||||
|
||||
namespace Steinberg {
|
||||
namespace Vst {
|
||||
|
|
@ -129,8 +130,7 @@ tresult PLUGIN_API ComponentBase::notify (IMessage* message)
|
|||
//------------------------------------------------------------------------
|
||||
IMessage* ComponentBase::allocateMessage () const
|
||||
{
|
||||
FUnknownPtr<IHostApplication> hostApp (hostContext);
|
||||
if (hostApp)
|
||||
if (auto hostApp = U::cast<IHostApplication> (hostContext))
|
||||
return Vst::allocateMessage (hostApp);
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "public.sdk/source/vst/vsteditcontroller.h"
|
||||
#include "base/source/updatehandler.h"
|
||||
#include "pluginterfaces/base/funknownimpl.h"
|
||||
#include "pluginterfaces/base/ustring.h"
|
||||
|
||||
#include <cstdio>
|
||||
|
|
@ -363,8 +364,7 @@ tresult PLUGIN_API EditControllerEx1::getUnitInfo (int32 unitIndex, UnitInfo& in
|
|||
tresult EditControllerEx1::notifyUnitSelection ()
|
||||
{
|
||||
tresult result = kResultFalse;
|
||||
FUnknownPtr<IUnitHandler> unitHandler (componentHandler);
|
||||
if (unitHandler)
|
||||
if (auto unitHandler = U::cast<IUnitHandler> (componentHandler))
|
||||
result = unitHandler->notifyUnitSelection (selectedUnit);
|
||||
return result;
|
||||
}
|
||||
|
|
@ -389,8 +389,7 @@ ProgramList* EditControllerEx1::getProgramList (ProgramListID listId) const
|
|||
tresult EditControllerEx1::notifyProgramListChange (ProgramListID listId, int32 programIndex)
|
||||
{
|
||||
tresult result = kResultFalse;
|
||||
FUnknownPtr<IUnitHandler> unitHandler (componentHandler);
|
||||
if (unitHandler)
|
||||
if (auto unitHandler = U::cast<IUnitHandler> (componentHandler))
|
||||
result = unitHandler->notifyProgramListChange (listId, programIndex);
|
||||
return result;
|
||||
}
|
||||
|
|
@ -478,8 +477,7 @@ void PLUGIN_API EditControllerEx1::update (FUnknown* changedUnknown, int32 /*mes
|
|||
auto* programList = FCast<ProgramList> (changedUnknown);
|
||||
if (programList)
|
||||
{
|
||||
FUnknownPtr<IUnitHandler> unitHandler (componentHandler);
|
||||
if (unitHandler)
|
||||
if (auto unitHandler = U::cast<IUnitHandler> (componentHandler))
|
||||
unitHandler->notifyProgramListChange (programList->getID (), kAllProgramInvalid);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,6 +38,11 @@
|
|||
#error To build JUCE VST3 plug-ins on BSD you must use an external BSD-compatible VST3 SDK with JUCE_CUSTOM_VST3_SDK=1
|
||||
#endif
|
||||
|
||||
// It's important to include this *before* any of the Steinberg headers.
|
||||
// On Windows, the VST3 headers might end up defining `stricmp` as `_stricmp` before including
|
||||
// <cstring> or <string.h>, which prevents the use of stricmp in JUCE source.
|
||||
#include <cstring>
|
||||
|
||||
// Wow, those Steinberg guys really don't worry too much about compiler warnings.
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_LEVEL_MSVC (0, 4505 4702 6011 6031 6221 6386 6387 6330 6001 28199)
|
||||
|
||||
|
|
@ -83,7 +88,8 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-W#warnings",
|
|||
"-Wunused-but-set-variable",
|
||||
"-Wunused-function",
|
||||
"-Wunused-parameter",
|
||||
"-Wzero-as-null-pointer-constant")
|
||||
"-Wzero-as-null-pointer-constant",
|
||||
"-Wdangling-else")
|
||||
|
||||
#undef DEVELOPMENT
|
||||
#define DEVELOPMENT 0 // This avoids a Clang warning in Steinberg code about unused values
|
||||
|
|
@ -157,10 +163,10 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-W#warnings",
|
|||
#include <base/source/flock.cpp>
|
||||
#endif
|
||||
|
||||
#pragma push_macro ("True")
|
||||
#undef True
|
||||
#pragma push_macro ("False")
|
||||
#undef False
|
||||
#pragma push_macro ("True")
|
||||
#undef True
|
||||
#pragma push_macro ("False")
|
||||
#undef False
|
||||
|
||||
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wmultichar", "-Wfour-char-constants")
|
||||
|
||||
|
|
@ -173,6 +179,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-W#warnings",
|
|||
#include <pluginterfaces/gui/iplugviewcontentscalesupport.h>
|
||||
#include <pluginterfaces/vst/ivstchannelcontextinfo.h>
|
||||
#include <pluginterfaces/vst/ivstmidicontrollers.h>
|
||||
#include <public.sdk/source/common/commonstringconvert.cpp>
|
||||
#include <public.sdk/source/common/memorystream.cpp>
|
||||
#include <public.sdk/source/common/pluginview.cpp>
|
||||
#include <public.sdk/source/vst/hosting/hostclasses.cpp>
|
||||
|
|
@ -190,8 +197,8 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-W#warnings",
|
|||
|
||||
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
||||
|
||||
#pragma pop_macro ("True")
|
||||
#pragma pop_macro ("False")
|
||||
#pragma pop_macro ("True")
|
||||
#pragma pop_macro ("False")
|
||||
|
||||
#if VST_VERSION >= 0x03060c // 3.6.12
|
||||
#include <public.sdk/source/vst/hosting/pluginterfacesupport.cpp>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue