1 //------------------------------------------------------------------------
2 // Project     : VST SDK
3 //
4 // Category    : Helpers
5 // Filename    : public.sdk/source/vst/aaxwrapper/aaxlibrary.cpp
6 // Created by  : Steinberg, 08/2017
7 // Description : VST 3 -> AAX Wrapper
8 //
9 //-----------------------------------------------------------------------------
10 // LICENSE
11 // (c) 2020, Steinberg Media Technologies GmbH, All Rights Reserved
12 //-----------------------------------------------------------------------------
13 // Redistribution and use in source and binary forms, with or without modification,
14 // are permitted provided that the following conditions are met:
15 //
16 //   * Redistributions of source code must retain the above copyright notice,
17 //     this list of conditions and the following disclaimer.
18 //   * Redistributions in binary form must reproduce the above copyright notice,
19 //     this list of conditions and the following disclaimer in the documentation
20 //     and/or other materials provided with the distribution.
21 //   * Neither the name of the Steinberg Media Technologies nor the names of its
22 //     contributors may be used to endorse or promote products derived from this
23 //     software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
26 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
27 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
29 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
32 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
33 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE  OF THIS SOFTWARE, EVEN IF ADVISED
34 // OF THE POSSIBILITY OF SUCH DAMAGE.
35 //-----------------------------------------------------------------------------
36 
37 /// \cond ignore
38 
39 // instead of linking to a library, we just include the sources here to have
40 // full control over compile settings
41 
42 #define I18N_LIB 1
43 #define PLUGIN_SDK_BUILD 1
44 #define DPA_PLUGIN_BUILD 1
45 #define INITACFIDS // Make sure all of the AVX2 uids are defined.
46 #define UNICODE 1
47 
48 #ifdef _WIN32
49 #ifndef WIN32
50 #define WIN32 // for CMutex.cpp
51 #endif
52 #define WINDOWS_VERSION 1 // for AAXWrapper_GUI.h
53 #endif
54 
55 #ifdef __clang__
56 #pragma clang diagnostic push
57 #pragma clang diagnostic ignored "-Wreorder"
58 #endif
59 
60 #include "AAX_Atomic.h"
61 
62 #include "../Interfaces/ACF/CACFClassFactory.cpp"
63 #include "../Libs/AAXLibrary/source/AAX_CACFUnknown.cpp"
64 #include "../Libs/AAXLibrary/source/AAX_CChunkDataParser.cpp"
65 #include "../Libs/AAXLibrary/source/AAX_CEffectDirectData.cpp"
66 #include "../Libs/AAXLibrary/source/AAX_CEffectGUI.cpp"
67 #include "../Libs/AAXLibrary/source/AAX_CEffectParameters.cpp"
68 #include "../Libs/AAXLibrary/source/AAX_CHostProcessor.cpp"
69 #include "../Libs/AAXLibrary/source/AAX_CHostServices.cpp"
70 #include "../Libs/AAXLibrary/source/AAX_CMutex.cpp"
71 #include "../Libs/AAXLibrary/source/AAX_CPacketDispatcher.cpp"
72 #include "../Libs/AAXLibrary/source/AAX_CParameter.cpp"
73 #include "../Libs/AAXLibrary/source/AAX_CParameterManager.cpp"
74 #include "../Libs/AAXLibrary/source/AAX_CString.cpp"
75 #include "../Libs/AAXLibrary/source/AAX_CUIDs.cpp"
76 #include "../Libs/AAXLibrary/source/AAX_CommonConversions.cpp"
77 #include "../Libs/AAXLibrary/source/AAX_IEffectDirectData.cpp"
78 #include "../Libs/AAXLibrary/source/AAX_IEffectGUI.cpp"
79 #include "../Libs/AAXLibrary/source/AAX_IEffectParameters.cpp"
80 #include "../Libs/AAXLibrary/source/AAX_IHostProcessor.cpp"
81 #include "../Libs/AAXLibrary/source/AAX_Init.cpp"
82 #include "../Libs/AAXLibrary/source/AAX_Properties.cpp"
83 #include "../Libs/AAXLibrary/source/AAX_VAutomationDelegate.cpp"
84 #include "../Libs/AAXLibrary/source/AAX_VCollection.cpp"
85 #include "../Libs/AAXLibrary/source/AAX_VComponentDescriptor.cpp"
86 #include "../Libs/AAXLibrary/source/AAX_VController.cpp"
87 #include "../Libs/AAXLibrary/source/AAX_VDescriptionHost.cpp"
88 #include "../Libs/AAXLibrary/source/AAX_VEffectDescriptor.cpp"
89 #include "../Libs/AAXLibrary/source/AAX_VFeatureInfo.cpp"
90 #include "../Libs/AAXLibrary/source/AAX_VHostProcessorDelegate.cpp"
91 #include "../Libs/AAXLibrary/source/AAX_VHostServices.cpp"
92 #include "../Libs/AAXLibrary/source/AAX_VPageTable.cpp"
93 #include "../Libs/AAXLibrary/source/AAX_VPrivateDataAccess.cpp"
94 #include "../Libs/AAXLibrary/source/AAX_VPropertyMap.cpp"
95 #include "../Libs/AAXLibrary/source/AAX_VTransport.cpp"
96 #include "../Libs/AAXLibrary/source/AAX_VViewContainer.cpp"
97 
98 #ifdef _WIN32
99 #include "../Libs/AAXLibrary/source/AAX_CAutoreleasePool.Win.cpp"
100 #else
101 //#include "../Libs/AAXLibrary/source/AAX_CAutoreleasePool.OSX.mm"
102 #endif
103 
104 #undef min
105 #undef max
106 
107 // put at the very end, uses "using namespace std"
108 #include "../Libs/AAXLibrary/source/AAX_SliderConversions.cpp"
109 
110 #ifdef __clang__
111 #pragma clang diagnostic pop
112 #endif
113 
114 /// \endcond