diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.pbxproj b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.pbxproj deleted file mode 100644 index 373b90a6..00000000 --- a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.pbxproj +++ /dev/null @@ -1,266 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - BD2A1F5751BB6465EFEB5889 /* plugin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BD2A144C3B32EFA5180A38F5 /* plugin.cpp */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - BD2A1226DD4B6ED23F230900 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.info; path = Info.plist; sourceTree = ""; }; - BD2A144C3B32EFA5180A38F5 /* plugin.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plugin.cpp; sourceTree = ""; }; - BD2A17C571405D51496892C4 /* M3dB.___VARIABLE_bundleExtension___ */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "M3dB.___VARIABLE_bundleExtension___"; sourceTree = BUILT_PRODUCTS_DIR; }; - BD2A18D6CA1C93179E40396A /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aeffect.h; path = ../vst2.x/aeffect.h; sourceTree = ""; }; - BD2A1CFE51F03D1B40DA1230 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aeffectx.h; path = ../vst2.x/aeffectx.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - BD2A17410135F1BFA2BB6503 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - BD2A15554318E7C2EF2CD5DC /* Products */ = { - isa = PBXGroup; - children = ( - BD2A17C571405D51496892C4 /* M3dB.___VARIABLE_bundleExtension___ */, - ); - name = Products; - sourceTree = ""; - }; - BD2A1DCFA27E77A6603B70A2 = { - isa = PBXGroup; - children = ( - BD2A15554318E7C2EF2CD5DC /* Products */, - BD2A1F10D41E35E7FCDFA898 /* M3dB */, - BD2A144C3B32EFA5180A38F5 /* plugin.cpp */, - BD2A18D6CA1C93179E40396A /* aeffect.h */, - BD2A1CFE51F03D1B40DA1230 /* aeffectx.h */, - ); - sourceTree = ""; - }; - BD2A1F10D41E35E7FCDFA898 /* M3dB */ = { - isa = PBXGroup; - children = ( - BD2A1226DD4B6ED23F230900 /* Info.plist */, - ); - path = M3dB; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - BD2A186B82B2C6E8A0E9022C /* M3dB */ = { - isa = PBXNativeTarget; - buildConfigurationList = BD2A12A4CFEA12B6C7A8873E /* Build configuration list for PBXNativeTarget "M3dB" */; - buildPhases = ( - BD2A15C927C3AD450E2DD52C /* Sources */, - BD2A17410135F1BFA2BB6503 /* Frameworks */, - BD2A175E365F9ED8C1C35C6F /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = M3dB; - productName = M3dB; - productReference = BD2A17C571405D51496892C4 /* M3dB.___VARIABLE_bundleExtension___ */; - productType = "com.apple.product-type.bundle"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BD2A116B4EC711555868B9BA /* Project object */ = { - isa = PBXProject; - attributes = { - ORGANIZATIONNAME = pongasoft; - }; - buildConfigurationList = BD2A1B7627DAA8FF541E84EC /* Build configuration list for PBXProject "M3dB" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = BD2A1DCFA27E77A6603B70A2; - productRefGroup = BD2A15554318E7C2EF2CD5DC /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - BD2A186B82B2C6E8A0E9022C /* M3dB */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - BD2A175E365F9ED8C1C35C6F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - BD2A15C927C3AD450E2DD52C /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BD2A1F5751BB6465EFEB5889 /* plugin.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - BD2A1223BF2A633FEE5D6099 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = M3dB/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - PRODUCT_BUNDLE_IDENTIFIER = org.pongasoft.vst24.M3dB; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = vst; - }; - name = Debug; - }; - BD2A17437E006499CC8685D1 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - }; - name = Debug; - }; - BD2A186609800B3BD0ECFF98 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - COMBINE_HIDPI_IMAGES = YES; - DEPLOYMENT_POSTPROCESSING = YES; - INFOPLIST_FILE = M3dB/Info.plist; - INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST"; - PRODUCT_BUNDLE_IDENTIFIER = org.pongasoft.vst24.M3dB; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = NO; - WRAPPER_EXTENSION = vst; - }; - name = Release; - }; - BD2A1D1EC28D17DC43ACBA09 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVES = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEPLOYMENT_LOCATION = NO; - DEPLOYMENT_POSTPROCESSING = NO; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INSTALL_PATH = ""; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - BD2A12A4CFEA12B6C7A8873E /* Build configuration list for PBXNativeTarget "M3dB" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BD2A1223BF2A633FEE5D6099 /* Debug */, - BD2A186609800B3BD0ECFF98 /* Release */, - ); - defaultConfigurationIsVisible = 0; - }; - BD2A1B7627DAA8FF541E84EC /* Build configuration list for PBXProject "M3dB" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BD2A17437E006499CC8685D1 /* Debug */, - BD2A1D1EC28D17DC43ACBA09 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BD2A116B4EC711555868B9BA /* Project object */; -} diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index ee3458dd..00000000 --- a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/project.xcworkspace/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Debug.xcscheme b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Debug.xcscheme deleted file mode 100644 index c936e04d..00000000 --- a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Debug.xcscheme +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Release.xcscheme b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Release.xcscheme deleted file mode 100644 index 5512455c..00000000 --- a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/M3dB - Release.xcscheme +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - diff --git a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist b/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index bd480195..00000000 --- a/other/vst2_lglw_debug_plugin/M3dB.xcodeproj/xcuserdata/ypujante.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,19 +0,0 @@ - - - - - SchemeUserState - - M3dB - Debug.xcscheme - - orderHint - 0 - - M3dB - Release.xcscheme - - orderHint - 1 - - - - diff --git a/other/vst2_lglw_debug_plugin/M3dB/Info.plist b/other/vst2_lglw_debug_plugin/M3dB/Info.plist deleted file mode 100644 index 28986ba7..00000000 --- a/other/vst2_lglw_debug_plugin/M3dB/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - NSHumanReadableCopyright - Copyright © 2017 pongasoft. All rights reserved. - NSPrincipalClass - - - diff --git a/other/vst2_lglw_debug_plugin/plugin.cpp__DUAL_WIN_CONTEXT_OK b/other/vst2_lglw_debug_plugin/plugin.cpp__DUAL_WIN_CONTEXT_OK deleted file mode 100644 index 39f84b89..00000000 --- a/other/vst2_lglw_debug_plugin/plugin.cpp__DUAL_WIN_CONTEXT_OK +++ /dev/null @@ -1,615 +0,0 @@ - - -#include -#include -#include - -#if defined(_WIN32) || defined(_WIN64) -#include -#include - #define VST_EXPORT extern "C" __declspec(dllexport) -#else - #define VST_EXPORT extern -#endif - -#include - -#define EDITWIN_X 20 -#define EDITWIN_Y 20 -#define EDITWIN_W 640 -#define EDITWIN_H 480 -#define EDITWIN_CLASS_NAME "VeeSeeVSTWindow" -#define EDITWIN_HIDDEN_CLASS_NAME "hidden_VeeSeeVSTWindow" - -/* - * I find the naming a bit confusing so I decided to use more meaningful names instead. - */ - -/** - * The VSTHostCallback is a function pointer so that the plugin can communicate with the host (not used in this small example) - */ -typedef audioMasterCallback VSTHostCallback; - -/** - * The VSTPlugin structure (AEffect) contains information about the plugin (like version, number of inputs, ...) and - * callbacks so that the host can call the plugin to do its work. The primary callback will be `processReplacing` for - * single precision (float) sample processing (or `processDoubleReplacing` for double precision (double)). - */ -typedef AEffect VSTPlugin; - - -// Since the host is expecting a very specific API we need to make sure it has C linkage (not C++) -extern "C" { - -/* - * This is the main entry point to the VST plugin. - * - * The host (DAW like Maschine, Ableton Live, Reason, ...) will look for this function with this exact API. - * - * It is the equivalent to `int main(int argc, char *argv[])` for a C executable. - * - * @param vstHostCallback is a callback so that the plugin can communicate with the host (not used in this small example) - * @return a pointer to the AEffect structure - */ -VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback); - -// note this looks like this without the type aliases (and is obviously 100% equivalent) -// extern AEffect *VSTPluginMain(audioMasterCallback audioMaster); - -} - -/* - * Constant for the version of the plugin. For example 1100 for version 1.1.0.0 - */ -const VstInt32 PLUGIN_VERSION = 1000; - -extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); - -/** - * Encapsulates the plugin as a C++ class. It will keep both the host callback and the structure required by the - * host (VSTPlugin). This class will be stored in the `VSTPlugin.object` field (circular reference) so that it can - * be accessed when the host calls the plugin back (for example in `processDoubleReplacing`). - */ -class VSTPluginWrapper -{ -public: - ERect editor_rect; - HWND parent_hwnd; // created by host - - struct { - HWND hwnd; - HDC hdc; - } hidden; - - struct { - HWND hwnd; - HDC hdc; - } editor; - - HGLRC hglrc; - - float clear_color = 0.0f; - - static const char *registered_class_name; - static VSTPluginWrapper *window_to_wrapper; - -public: - VSTPluginWrapper(VSTHostCallback vstHostCallback, - VstInt32 vendorUniqueID, - VstInt32 vendorVersion, - VstInt32 numParams, - VstInt32 numPrograms, - VstInt32 numInputs, - VstInt32 numOutputs); - - ~VSTPluginWrapper(); - - inline VSTPlugin *getVSTPlugin() - { - return &_vstPlugin; - } - - inline VstInt32 getNumInputs() const - { - return _vstPlugin.numInputs; - } - - inline VstInt32 getNumOutputs() const - { - return _vstPlugin.numOutputs; - } - - void createHiddenWindow(void) { - WNDCLASS wc; - ::ZeroMemory(&wc, sizeof(wc)); - wc.style = CS_OWNDC; - wc.lpfnWndProc = (WNDPROC) WndProc; - wc.hInstance = ::GetModuleHandle(NULL); - wc.hCursor = ::LoadCursor(NULL, IDC_ARROW); - wc.lpszClassName = EDITWIN_HIDDEN_CLASS_NAME; - - if(!::RegisterClass(&wc)) - { - // something went terribly wrong - printf("[---] vstgltest: failed to register hidden window class\n"); - return; - } - - DWORD dwExStyle = 0; - DWORD dwStyle = 0; - - hidden.hwnd = ::CreateWindowEx(dwExStyle, - EDITWIN_HIDDEN_CLASS_NAME, - "Test", - dwStyle, - 0/*xpos*/, 0/*ypos*/, - EDITWIN_W, EDITWIN_H, - NULL/*parentHWND*/, - NULL, // window menu - ::GetModuleHandle(NULL), - NULL - ); - - PIXELFORMATDESCRIPTOR pfd = { - sizeof(PIXELFORMATDESCRIPTOR), - 1, - PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags - PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. - 32, // Colordepth of the framebuffer. - 0, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, 0, 0, 0, - 24, // Number of bits for the depthbuffer - 8, // Number of bits for the stencilbuffer - 0, // Number of Aux buffers in the framebuffer. - PFD_MAIN_PLANE, - 0, - 0, 0, 0 - }; - - hidden.hdc = ::GetDC(hidden.hwnd); - printf("xxx vstgltest: hidden hdc=%p\n", hidden.hdc); - - int pfmt = ::ChoosePixelFormat(hidden.hdc, &pfd); - printf("xxx vstgltest: hidden pfmt=%d\n", pfmt); - ::SetPixelFormat(hidden.hdc, pfmt, &pfd); - - hglrc = ::wglCreateContext(hidden.hdc); - printf("xxx vstgltest: hidden hglrc=%p\n", hglrc); - } - - void destroyHiddenWindow(void) { - if(NULL != hidden.hwnd) - { - ::wglDeleteContext(hglrc); - ::DestroyWindow(hidden.hwnd); - - ::UnregisterClass(EDITWIN_HIDDEN_CLASS_NAME, ::GetModuleHandle(NULL)); - } - } - - void openEditor(HWND _hwnd) { - parent_hwnd = _hwnd; - - if(NULL == registered_class_name) - { - WNDCLASS wc; - ::ZeroMemory(&wc, sizeof(wc)); - wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; - wc.lpfnWndProc = (WNDPROC) WndProc; - wc.hInstance = ::GetModuleHandle(NULL); - wc.hCursor = ::LoadCursor(NULL, IDC_ARROW); - wc.lpszClassName = EDITWIN_CLASS_NAME; - - if(!::RegisterClass(&wc)) - { - // something went terribly wrong - printf("[---] vstgltest: failed to register window class\n"); - return; - } - - registered_class_name = EDITWIN_CLASS_NAME; - } - - DWORD dwExStyle = 0; - DWORD dwStyle = WS_CHILD | WS_VISIBLE; - - editor.hwnd = ::CreateWindowEx(dwExStyle, - EDITWIN_CLASS_NAME, - "Test", - dwStyle, - 0/*xpos*/, 0/*ypos*/, - EDITWIN_W, EDITWIN_H, - parent_hwnd, - NULL, // window menu - ::GetModuleHandle(NULL), - NULL - ); - - window_to_wrapper = this; - - PIXELFORMATDESCRIPTOR pfd = { - sizeof(PIXELFORMATDESCRIPTOR), - 1, - PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags - PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. - 32, // Colordepth of the framebuffer. - 0, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, 0, 0, 0, - 24, // Number of bits for the depthbuffer - 8, // Number of bits for the stencilbuffer - 0, // Number of Aux buffers in the framebuffer. - PFD_MAIN_PLANE, - 0, - 0, 0, 0 - }; - - editor.hdc = ::GetDC(editor.hwnd); - - int pfmt = ::ChoosePixelFormat(editor.hdc, &pfd); - printf("xxx vstgltest: editor pfmt=%d\n", pfmt); - ::SetPixelFormat(editor.hdc, pfmt, &pfd); - - // // hglrc = ::wglCreateContext(hdc); - } - - void closeEditor(void) { - if(NULL != editor.hwnd) - { - ::DestroyWindow(editor.hwnd); - editor.hwnd = NULL; - - // (todo) unregister when last window is closed - ::UnregisterClass(EDITWIN_CLASS_NAME, ::GetModuleHandle(NULL)); - registered_class_name = NULL; - - window_to_wrapper = NULL; - } - } - - static VSTPluginWrapper *FindWrapperByWindow(HWND hwnd) { - return window_to_wrapper; - } - - void redrawWindow(void) { - // Save host GL context - HDC hostHDC = ::wglGetCurrentDC(); - HGLRC hostHGLRC = ::wglGetCurrentContext(); - printf("xxx vstgltest: WM_PAINT: hostHDC=%p hostGLRC=%p\n", hostHDC, hostHGLRC); - - // Bind plugin GL context - printf("xxx vstgltest: WM_PAINT: pluginHDC=%p pluginGLRC=%p\n", editor.hdc, hglrc); - ::wglMakeCurrent(editor.hdc, hglrc); - - // Draw something - ::glClearColor(0.0, 1.0, clear_color, 1.0); - clear_color += 0.05f; - if(clear_color >= 1.0f) - clear_color -= 1.0f; - ::glClear(GL_COLOR_BUFFER_BIT); - ::glFlush(); - ::wglSwapLayerBuffers(editor.hdc, WGL_SWAP_MAIN_PLANE); - - // Restore host GL context - ::wglMakeCurrent(hostHDC, hostHGLRC); - } - -private: - // the host callback (a function pointer) - VSTHostCallback _vstHostCallback; - - // the actual structure required by the host - VSTPlugin _vstPlugin; -}; - -const char *VSTPluginWrapper::registered_class_name = NULL; -VSTPluginWrapper *VSTPluginWrapper::window_to_wrapper = NULL; - -extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { - - switch(message) - { - case WM_CREATE: - printf("xxx vstgltest: WM_CREATE\n"); - break; - - case WM_DESTROY: - printf("xxx vstgltest: WM_DESTROY\n"); - break; - - case WM_LBUTTONDOWN: - printf("xxx vstgltest: WM_LBUTTONDOWN\n"); - break; - - case WM_LBUTTONUP: - printf("xxx vstgltest: WM_LBUTTONUP\n"); - break; - - case WM_PAINT: - // https://docs.microsoft.com/en-us/windows/desktop/api/Winuser/nf-winuser-redrawwindow - printf("xxx vstgltest: WM_PAINT\n"); - VSTPluginWrapper *wrapper = VSTPluginWrapper::FindWrapperByWindow(hWnd); - wrapper->redrawWindow(); - break; - } - - return DefWindowProc(hWnd, message, wParam, lParam); -} - -/******************************************* - * Callbacks: Host -> Plugin - * - * Defined here because they are used in the rest of the code later - */ - -/** - * This is the callback that will be called to process the samples in the case of single precision. This is where the - * meat of the logic happens! - * - * @param vstPlugin the object returned by VSTPluginMain - * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] - * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] - * @param sampleFrames the number of samples (second dimension in both arrays) - */ -void VSTPluginProcessSamplesFloat32(VSTPlugin *vstPlugin, float **inputs, float **outputs, VstInt32 sampleFrames) -{ - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - - // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the - // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) - for(int i = 0; i < wrapper->getNumInputs(); i++) - { - auto inputSamples = inputs[i]; - auto outputSamples = outputs[i]; - for(int j = 0; j < sampleFrames; j++) - { - outputSamples[j] = inputSamples[j] * 0.5f; - } - } -} - -/** - * This is the callback that will be called to process the samples in the case of double precision. This is where the - * meat of the logic happens! - * - * @param vstPlugin the object returned by VSTPluginMain - * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] - * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] - * @param sampleFrames the number of samples (second dimension in both arrays) - */ -void VSTPluginProcessSamplesFloat64(VSTPlugin *vstPlugin, double **inputs, double **outputs, VstInt32 sampleFrames) -{ - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - - // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the - // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) - for(int i = 0; i < wrapper->getNumInputs(); i++) - { - auto inputSamples = inputs[i]; - auto outputSamples = outputs[i]; - for(int j = 0; j < sampleFrames; j++) - { - outputSamples[j] = inputSamples[j] * 0.5; - } - } -} - -/** - * This is the plugin called by the host to communicate with the plugin, mainly to request information (like the - * vendor string, the plugin category...) or communicate state/changes (like open/close, frame rate...) - * - * @param vstPlugin the object returned by VSTPluginMain - * @param opCode defined in aeffect.h/AEffectOpcodes and which continues in aeffectx.h/AEffectXOpcodes for a grand - * total of 79 of them! Only a few of them are implemented in this small plugin. - * @param index depend on the opcode - * @param value depend on the opcode - * @param ptr depend on the opcode - * @param opt depend on the opcode - * @return depend on the opcode (0 is ok when you don't implement an opcode...) - */ -VstIntPtr VSTPluginDispatcher(VSTPlugin *vstPlugin, VstInt32 opCode, VstInt32 index, VstIntPtr value, void *ptr, float opt) -{ - printf("vstgltest: called VSTPluginDispatcher(%d)\n", opCode); - - VstIntPtr r = 0; - - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - // see aeffect.h/AEffectOpcodes and aeffectx.h/AEffectXOpcodes for details on all of them - switch(opCode) - { - // request for the category of the plugin: in this case it is an effect since it is modifying the input (as opposed - // to generating sound) - case effGetPlugCategory: - return kPlugCategEffect; - - // called by the host when the plugin was called... time to reclaim memory! - case effClose: - delete wrapper; - break; - - case effGetEffectName: - ::strncpy((char*)ptr, "VST GL Test", kVstMaxEffectNameLen); - r = 1; - break; - - // request for the vendor string (usually used in the UI for plugin grouping) - case effGetVendorString: - strncpy(static_cast(ptr), "bsp", kVstMaxVendorStrLen); - r = 1; - break; - - // request for the version - case effGetVendorVersion: - return PLUGIN_VERSION; - - case effEditIdle: - if(NULL != wrapper->editor.hwnd) - { - printf("xxx vstgltest: redraw window\n"); - // (void)::RedrawWindow(wrapper->hwnd, NULL, NULL, RDW_INTERNALPAINT); - //(void)::UpdateWindow(wrapper->hwnd); - if(::IsWindowVisible(wrapper->editor.hwnd)) - { - wrapper->redrawWindow(); - } - } - break; - - case effEditGetRect: - // Query editor window geometry - // ptr: ERect* (on Windows) - if(NULL != ptr) // yeah, this should never be NULL - { - // ... - wrapper->editor_rect.left = EDITWIN_X; - wrapper->editor_rect.top = EDITWIN_Y; - wrapper->editor_rect.right = EDITWIN_X + EDITWIN_W; - wrapper->editor_rect.bottom = EDITWIN_Y + EDITWIN_H; - *(void**)ptr = (void*) &wrapper->editor_rect; - r = 1; - } - else - { - r = 0; - } - break; - -#if 0 - case effEditTop: - // deprecated in vst2.4 - r = 0; - break; -#endif - - case effEditOpen: - // Show editor window - // ptr: native window handle (hWnd on Windows) - wrapper->openEditor((HWND)ptr); - r = 1; - break; - - case effEditClose: - // Hide editor window - wrapper->closeEditor(); - r = 1; - break; - - // ignoring all other opcodes - default: - printf("Unknown opCode %d [ignored] \n", opCode); - break; - } - - return r; -} - -/** - * Used for parameter setting (not used by this plugin) - */ -void VSTPluginSetParameter(VSTPlugin *vstPlugin, VstInt32 index, float parameter) -{ - printf("called VSTPluginSetParameter(%d, %f)\n", index, parameter); - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); -} - -/** - * Used for parameter (not used by this plugin) - */ -float VSTPluginGetParameter(VSTPlugin *vstPlugin, VstInt32 index) -{ - printf("called VSTPluginGetParameter(%d)\n", index); - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - return 0; -} - -/** - * Main constructor for our C++ class - */ -VSTPluginWrapper::VSTPluginWrapper(audioMasterCallback vstHostCallback, - VstInt32 vendorUniqueID, - VstInt32 vendorVersion, - VstInt32 numParams, - VstInt32 numPrograms, - VstInt32 numInputs, - VstInt32 numOutputs) : - _vstHostCallback(vstHostCallback) -{ - // Make sure that the memory is properly initialized - memset(&_vstPlugin, 0, sizeof(_vstPlugin)); - - // this field must be set with this constant... - _vstPlugin.magic = kEffectMagic; - - // storing this object into the VSTPlugin so that it can be retrieved when called back (see callbacks for use) - _vstPlugin.object = this; - - // specifying that we handle both single and double precision (there are other flags see aeffect.h/VstAEffectFlags) - _vstPlugin.flags = effFlagsCanReplacing | effFlagsCanDoubleReplacing | effFlagsHasEditor; - - // initializing the plugin with the various values - _vstPlugin.uniqueID = vendorUniqueID; - _vstPlugin.version = vendorVersion; - _vstPlugin.numParams = numParams; - _vstPlugin.numPrograms = numPrograms; - _vstPlugin.numInputs = numInputs; - _vstPlugin.numOutputs = numOutputs; - - // setting the callbacks to the previously defined functions - _vstPlugin.dispatcher = VSTPluginDispatcher; - _vstPlugin.getParameter = VSTPluginGetParameter; - _vstPlugin.setParameter = VSTPluginSetParameter; - _vstPlugin.processReplacing = VSTPluginProcessSamplesFloat32; - _vstPlugin.processDoubleReplacing = VSTPluginProcessSamplesFloat64; - - parent_hwnd = NULL; - - hidden.hwnd = NULL; - hidden.hdc = NULL; - - editor.hwnd = NULL; - editor.hdc = NULL; - - hglrc = NULL; - - createHiddenWindow(); -} - -/** - * Destructor called when the plugin is closed (see VSTPluginDispatcher with effClose opCode). In this very simply plugin - * there is nothing to do but in general the memory that gets allocated MUST be freed here otherwise there might be a - * memory leak which may end up slowing down and/or crashing the host - */ -VSTPluginWrapper::~VSTPluginWrapper() { - destroyHiddenWindow(); -} - -/** - * Implementation of the main entry point of the plugin - */ -VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback) -{ - printf("called VSTPluginMain... \n"); - - // simply create our plugin C++ class - VSTPluginWrapper *plugin = - new VSTPluginWrapper(vstHostCallback, - CCONST('u', 's', 'a', '§'), // registered with Steinberg (http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm) - PLUGIN_VERSION, // version - 0, // no params - 0, // no programs - 2, // 2 inputs - 2); // 2 outputs - - // return the plugin per the contract of the API - return plugin->getVSTPlugin(); -} diff --git a/other/vst2_lglw_debug_plugin/plugin.cpp__SIMPLE b/other/vst2_lglw_debug_plugin/plugin.cpp__SIMPLE deleted file mode 100644 index 5af8e7ba..00000000 --- a/other/vst2_lglw_debug_plugin/plugin.cpp__SIMPLE +++ /dev/null @@ -1,527 +0,0 @@ - - -#include -#include -#include - -#if defined(_WIN32) || defined(_WIN64) -#include -#include - #define VST_EXPORT extern "C" __declspec(dllexport) -#else - #define VST_EXPORT extern -#endif - -#include - -#define EDITWIN_X 20 -#define EDITWIN_Y 20 -#define EDITWIN_W 640 -#define EDITWIN_H 480 -#define EDITWIN_CLASS_NAME "VeeSeeVSTWindow" - -/* - * I find the naming a bit confusing so I decided to use more meaningful names instead. - */ - -/** - * The VSTHostCallback is a function pointer so that the plugin can communicate with the host (not used in this small example) - */ -typedef audioMasterCallback VSTHostCallback; - -/** - * The VSTPlugin structure (AEffect) contains information about the plugin (like version, number of inputs, ...) and - * callbacks so that the host can call the plugin to do its work. The primary callback will be `processReplacing` for - * single precision (float) sample processing (or `processDoubleReplacing` for double precision (double)). - */ -typedef AEffect VSTPlugin; - - -// Since the host is expecting a very specific API we need to make sure it has C linkage (not C++) -extern "C" { - -/* - * This is the main entry point to the VST plugin. - * - * The host (DAW like Maschine, Ableton Live, Reason, ...) will look for this function with this exact API. - * - * It is the equivalent to `int main(int argc, char *argv[])` for a C executable. - * - * @param vstHostCallback is a callback so that the plugin can communicate with the host (not used in this small example) - * @return a pointer to the AEffect structure - */ -VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback); - -// note this looks like this without the type aliases (and is obviously 100% equivalent) -// extern AEffect *VSTPluginMain(audioMasterCallback audioMaster); - -} - -/* - * Constant for the version of the plugin. For example 1100 for version 1.1.0.0 - */ -const VstInt32 PLUGIN_VERSION = 1000; - -extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); - -/** - * Encapsulates the plugin as a C++ class. It will keep both the host callback and the structure required by the - * host (VSTPlugin). This class will be stored in the `VSTPlugin.object` field (circular reference) so that it can - * be accessed when the host calls the plugin back (for example in `processDoubleReplacing`). - */ -class VSTPluginWrapper -{ -public: - ERect editor_rect; - HWND parent_hwnd; // created by host - HWND hwnd; - HDC hdc; - HGLRC hglrc; - - float clear_color = 0.0f; - - static const char *registered_class_name; - static VSTPluginWrapper *window_to_wrapper; - -public: - VSTPluginWrapper(VSTHostCallback vstHostCallback, - VstInt32 vendorUniqueID, - VstInt32 vendorVersion, - VstInt32 numParams, - VstInt32 numPrograms, - VstInt32 numInputs, - VstInt32 numOutputs); - - ~VSTPluginWrapper(); - - inline VSTPlugin *getVSTPlugin() - { - return &_vstPlugin; - } - - inline VstInt32 getNumInputs() const - { - return _vstPlugin.numInputs; - } - - inline VstInt32 getNumOutputs() const - { - return _vstPlugin.numOutputs; - } - - void openEditor(HWND _hwnd) { - parent_hwnd = _hwnd; - - if(NULL == registered_class_name) - { - WNDCLASS wc; - ::ZeroMemory(&wc, sizeof(wc)); - wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; - wc.lpfnWndProc = (WNDPROC) WndProc; - wc.hInstance = ::GetModuleHandle(NULL); - wc.hCursor = ::LoadCursor(NULL, IDC_ARROW); - wc.lpszClassName = EDITWIN_CLASS_NAME; - - if(!::RegisterClass(&wc)) - { - // something went terribly wrong - printf("[---] vstgltest: failed to register window class\n"); - return; - } - - registered_class_name = EDITWIN_CLASS_NAME; - } - - DWORD dwExStyle = 0; - DWORD dwStyle = WS_CHILD | WS_VISIBLE; - - hwnd = ::CreateWindowEx(dwExStyle, - EDITWIN_CLASS_NAME, - "Test", - dwStyle, - 0/*xpos*/, 0/*ypos*/, - EDITWIN_W, EDITWIN_H, - parent_hwnd, - NULL, // window menu - ::GetModuleHandle(NULL), - NULL - ); - - window_to_wrapper = this; - - PIXELFORMATDESCRIPTOR pfd = { - sizeof(PIXELFORMATDESCRIPTOR), - 1, - PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER, //Flags - PFD_TYPE_RGBA, // The kind of framebuffer. RGBA or palette. - 32, // Colordepth of the framebuffer. - 0, 0, 0, 0, 0, 0, - 0, - 0, - 0, - 0, 0, 0, 0, - 24, // Number of bits for the depthbuffer - 8, // Number of bits for the stencilbuffer - 0, // Number of Aux buffers in the framebuffer. - PFD_MAIN_PLANE, - 0, - 0, 0, 0 - }; - - hdc = ::GetDC(hwnd); - - int pfmt = ::ChoosePixelFormat(hdc, &pfd); - printf("xxx vstgltest: pfmt=%d", pfmt); - ::SetPixelFormat(hdc, pfmt, &pfd); - - hglrc = ::wglCreateContext(hdc); - } - - void closeEditor(void) { - if(NULL != hwnd) - { - ::wglDeleteContext(hglrc); - ::DestroyWindow(hwnd); - - // (todo) unregister when last window is closed - ::UnregisterClass(EDITWIN_CLASS_NAME, ::GetModuleHandle(NULL)); - registered_class_name = NULL; - - window_to_wrapper = NULL; - } - } - - static VSTPluginWrapper *FindWrapperByWindow(HWND hwnd) { - return window_to_wrapper; - } - - void redrawWindow(void) { - // Save host GL context - HDC hostHDC = ::wglGetCurrentDC(); - HGLRC hostHGLRC = ::wglGetCurrentContext(); - printf("xxx vstgltest: WM_PAINT: hostHDC=%p hostGLRC=%p\n", hostHDC, hostHGLRC); - - // Bind plugin GL context - printf("xxx vstgltest: WM_PAINT: pluginHDC=%p pluginGLRC=%p\n", hdc, hglrc); - ::wglMakeCurrent(hdc, hglrc); - - // Draw something - ::glClearColor(0.0, 1.0, clear_color, 1.0); - clear_color += 0.05f; - if(clear_color >= 1.0f) - clear_color -= 1.0f; - ::glClear(GL_COLOR_BUFFER_BIT); - ::glFlush(); - ::wglSwapLayerBuffers(hdc, WGL_SWAP_MAIN_PLANE); - - // Restore host GL context - ::wglMakeCurrent(hostHDC, hostHGLRC); - } - -private: - // the host callback (a function pointer) - VSTHostCallback _vstHostCallback; - - // the actual structure required by the host - VSTPlugin _vstPlugin; -}; - -const char *VSTPluginWrapper::registered_class_name = NULL; -VSTPluginWrapper *VSTPluginWrapper::window_to_wrapper = NULL; - -extern "C" LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { - - switch(message) - { - case WM_CREATE: - printf("xxx vstgltest: WM_CREATE\n"); - break; - - case WM_DESTROY: - printf("xxx vstgltest: WM_DESTROY\n"); - break; - - case WM_LBUTTONDOWN: - printf("xxx vstgltest: WM_LBUTTONDOWN\n"); - break; - - case WM_LBUTTONUP: - printf("xxx vstgltest: WM_LBUTTONUP\n"); - break; - - case WM_PAINT: - // https://docs.microsoft.com/en-us/windows/desktop/api/Winuser/nf-winuser-redrawwindow - printf("xxx vstgltest: WM_PAINT\n"); - VSTPluginWrapper *wrapper = VSTPluginWrapper::FindWrapperByWindow(hWnd); - wrapper->redrawWindow(); - break; - } - - return DefWindowProc(hWnd, message, wParam, lParam); -} - -/******************************************* - * Callbacks: Host -> Plugin - * - * Defined here because they are used in the rest of the code later - */ - -/** - * This is the callback that will be called to process the samples in the case of single precision. This is where the - * meat of the logic happens! - * - * @param vstPlugin the object returned by VSTPluginMain - * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] - * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] - * @param sampleFrames the number of samples (second dimension in both arrays) - */ -void VSTPluginProcessSamplesFloat32(VSTPlugin *vstPlugin, float **inputs, float **outputs, VstInt32 sampleFrames) -{ - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - - // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the - // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) - for(int i = 0; i < wrapper->getNumInputs(); i++) - { - auto inputSamples = inputs[i]; - auto outputSamples = outputs[i]; - for(int j = 0; j < sampleFrames; j++) - { - outputSamples[j] = inputSamples[j] * 0.5f; - } - } -} - -/** - * This is the callback that will be called to process the samples in the case of double precision. This is where the - * meat of the logic happens! - * - * @param vstPlugin the object returned by VSTPluginMain - * @param inputs an array of array of input samples. You read from it. First dimension is for inputs, second dimension is for samples: inputs[numInputs][sampleFrames] - * @param outputs an array of array of output samples. You write to it. First dimension is for outputs, second dimension is for samples: outputs[numOuputs][sampleFrames] - * @param sampleFrames the number of samples (second dimension in both arrays) - */ -void VSTPluginProcessSamplesFloat64(VSTPlugin *vstPlugin, double **inputs, double **outputs, VstInt32 sampleFrames) -{ - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - - // code speaks for itself: for each input (2 when stereo input), iterating over every sample and writing the - // result in the outputs array after multiplying by 0.5 (which result in a 3dB attenuation of the sound) - for(int i = 0; i < wrapper->getNumInputs(); i++) - { - auto inputSamples = inputs[i]; - auto outputSamples = outputs[i]; - for(int j = 0; j < sampleFrames; j++) - { - outputSamples[j] = inputSamples[j] * 0.5; - } - } -} - -/** - * This is the plugin called by the host to communicate with the plugin, mainly to request information (like the - * vendor string, the plugin category...) or communicate state/changes (like open/close, frame rate...) - * - * @param vstPlugin the object returned by VSTPluginMain - * @param opCode defined in aeffect.h/AEffectOpcodes and which continues in aeffectx.h/AEffectXOpcodes for a grand - * total of 79 of them! Only a few of them are implemented in this small plugin. - * @param index depend on the opcode - * @param value depend on the opcode - * @param ptr depend on the opcode - * @param opt depend on the opcode - * @return depend on the opcode (0 is ok when you don't implement an opcode...) - */ -VstIntPtr VSTPluginDispatcher(VSTPlugin *vstPlugin, VstInt32 opCode, VstInt32 index, VstIntPtr value, void *ptr, float opt) -{ - printf("vstgltest: called VSTPluginDispatcher(%d)\n", opCode); - - VstIntPtr r = 0; - - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - // see aeffect.h/AEffectOpcodes and aeffectx.h/AEffectXOpcodes for details on all of them - switch(opCode) - { - // request for the category of the plugin: in this case it is an effect since it is modifying the input (as opposed - // to generating sound) - case effGetPlugCategory: - return kPlugCategEffect; - - // called by the host when the plugin was called... time to reclaim memory! - case effClose: - delete wrapper; - break; - - case effGetEffectName: - ::strncpy((char*)ptr, "VST GL Test", kVstMaxEffectNameLen); - r = 1; - break; - - // request for the vendor string (usually used in the UI for plugin grouping) - case effGetVendorString: - strncpy(static_cast(ptr), "bsp", kVstMaxVendorStrLen); - r = 1; - break; - - // request for the version - case effGetVendorVersion: - return PLUGIN_VERSION; - - case effEditIdle: - if(NULL != wrapper->hwnd) - { - printf("xxx vstgltest: redraw window\n"); - // (void)::RedrawWindow(wrapper->hwnd, NULL, NULL, RDW_INTERNALPAINT); - //(void)::UpdateWindow(wrapper->hwnd); - if(::IsWindowVisible(wrapper->hwnd)) - { - wrapper->redrawWindow(); - } - } - break; - - case effEditGetRect: - // Query editor window geometry - // ptr: ERect* (on Windows) - if(NULL != ptr) // yeah, this should never be NULL - { - // ... - wrapper->editor_rect.left = EDITWIN_X; - wrapper->editor_rect.top = EDITWIN_Y; - wrapper->editor_rect.right = EDITWIN_X + EDITWIN_W; - wrapper->editor_rect.bottom = EDITWIN_Y + EDITWIN_H; - *(void**)ptr = (void*) &wrapper->editor_rect; - r = 1; - } - else - { - r = 0; - } - break; - -#if 0 - case effEditTop: - // deprecated in vst2.4 - r = 0; - break; -#endif - - case effEditOpen: - // Show editor window - // ptr: native window handle (hWnd on Windows) - wrapper->openEditor((HWND)ptr); - r = 1; - break; - - case effEditClose: - // Hide editor window - wrapper->closeEditor(); - r = 1; - break; - - // ignoring all other opcodes - default: - printf("Unknown opCode %d [ignored] \n", opCode); - break; - } - - return r; -} - -/** - * Used for parameter setting (not used by this plugin) - */ -void VSTPluginSetParameter(VSTPlugin *vstPlugin, VstInt32 index, float parameter) -{ - printf("called VSTPluginSetParameter(%d, %f)\n", index, parameter); - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); -} - -/** - * Used for parameter (not used by this plugin) - */ -float VSTPluginGetParameter(VSTPlugin *vstPlugin, VstInt32 index) -{ - printf("called VSTPluginGetParameter(%d)\n", index); - // we can get a hold to our C++ class since we stored it in the `object` field (see constructor) - VSTPluginWrapper *wrapper = static_cast(vstPlugin->object); - return 0; -} - -/** - * Main constructor for our C++ class - */ -VSTPluginWrapper::VSTPluginWrapper(audioMasterCallback vstHostCallback, - VstInt32 vendorUniqueID, - VstInt32 vendorVersion, - VstInt32 numParams, - VstInt32 numPrograms, - VstInt32 numInputs, - VstInt32 numOutputs) : - _vstHostCallback(vstHostCallback) -{ - // Make sure that the memory is properly initialized - memset(&_vstPlugin, 0, sizeof(_vstPlugin)); - - // this field must be set with this constant... - _vstPlugin.magic = kEffectMagic; - - // storing this object into the VSTPlugin so that it can be retrieved when called back (see callbacks for use) - _vstPlugin.object = this; - - // specifying that we handle both single and double precision (there are other flags see aeffect.h/VstAEffectFlags) - _vstPlugin.flags = effFlagsCanReplacing | effFlagsCanDoubleReplacing | effFlagsHasEditor; - - // initializing the plugin with the various values - _vstPlugin.uniqueID = vendorUniqueID; - _vstPlugin.version = vendorVersion; - _vstPlugin.numParams = numParams; - _vstPlugin.numPrograms = numPrograms; - _vstPlugin.numInputs = numInputs; - _vstPlugin.numOutputs = numOutputs; - - // setting the callbacks to the previously defined functions - _vstPlugin.dispatcher = VSTPluginDispatcher; - _vstPlugin.getParameter = VSTPluginGetParameter; - _vstPlugin.setParameter = VSTPluginSetParameter; - _vstPlugin.processReplacing = VSTPluginProcessSamplesFloat32; - _vstPlugin.processDoubleReplacing = VSTPluginProcessSamplesFloat64; - - parent_hwnd = NULL; - hwnd = NULL; - hdc = NULL; - hglrc = NULL; -} - -/** - * Destructor called when the plugin is closed (see VSTPluginDispatcher with effClose opCode). In this very simply plugin - * there is nothing to do but in general the memory that gets allocated MUST be freed here otherwise there might be a - * memory leak which may end up slowing down and/or crashing the host - */ -VSTPluginWrapper::~VSTPluginWrapper() -{ -} - -/** - * Implementation of the main entry point of the plugin - */ -VST_EXPORT VSTPlugin *VSTPluginMain(VSTHostCallback vstHostCallback) -{ - printf("called VSTPluginMain... \n"); - - // simply create our plugin C++ class - VSTPluginWrapper *plugin = - new VSTPluginWrapper(vstHostCallback, - CCONST('u', 's', 'a', '§'), // registered with Steinberg (http://service.steinberg.de/databases/plugin.nsf/plugIn?openForm) - PLUGIN_VERSION, // version - 0, // no params - 0, // no programs - 2, // 2 inputs - 2); // 2 outputs - - // return the plugin per the contract of the API - return plugin->getVSTPlugin(); -} diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db.sln b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db.sln deleted file mode 100644 index b963cfb1..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2024 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "m3db", "m3db\m3db.vcxproj", "{ADEB3292-4BBF-4B20-9A11-3D8076423F16}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x64.ActiveCfg = Debug|x64 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x64.Build.0 = Debug|x64 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x86.ActiveCfg = Debug|Win32 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Debug|x86.Build.0 = Debug|Win32 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x64.ActiveCfg = Release|x64 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x64.Build.0 = Release|x64 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x86.ActiveCfg = Release|Win32 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16}.Release|x86.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A1B75069-8782-4AB1-A661-12FED71250D4} - EndGlobalSection -EndGlobal diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/dllmain.cpp b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/dllmain.cpp deleted file mode 100644 index 16373032..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/dllmain.cpp and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.cpp b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.cpp deleted file mode 100644 index c7ab7b7a..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.cpp and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj deleted file mode 100644 index 402899c1..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj +++ /dev/null @@ -1,167 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - 15.0 - {ADEB3292-4BBF-4B20-9A11-3D8076423F16} - Win32Proj - m3db - 10.0.16299.0 - - - - DynamicLibrary - true - v141 - Unicode - - - DynamicLibrary - false - v141 - true - Unicode - - - DynamicLibrary - true - v141 - Unicode - - - DynamicLibrary - false - v141 - true - - - - - - - - - - - - - - - - - - - - - true - - - true - - - false - - - false - - - - NotUsing - Level3 - Disabled - true - WIN32;_DEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - f:\dev\vstsdk2.4 - - - Windows - true - - - - - NotUsing - Level3 - Disabled - true - _DEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - - - Windows - true - - - - - NotUsing - Level3 - MaxSpeed - true - true - true - WIN32;NDEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - f:\dev\vstsdk2.4 - None - - - - - Windows - true - true - false - - - - - NotUsing - Level3 - MaxSpeed - true - true - true - NDEBUG;M3DB_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions);_CRT_SECURE_NO_DEPRECATE - true - F:\git\VeeSeeVSTRack\dep\lglw;f:\dev\vstsdk2.4\pluginterfaces\vst2.x\ - None - - - Windows - true - true - false - opengl32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - - - - - - - - \ No newline at end of file diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.filters b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.filters deleted file mode 100644 index abfd8b6a..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.filters +++ /dev/null @@ -1,33 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.user b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.user deleted file mode 100644 index 6e2aec7a..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/m3db.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.cpp b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.cpp deleted file mode 100644 index 64433cdd..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.cpp and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.h b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.h deleted file mode 100644 index b937b12c..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/stdafx.h and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/targetver.h b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/targetver.h deleted file mode 100644 index 567cd346..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/targetver.h and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.Build.CppClean.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.Build.CppClean.log deleted file mode 100644 index 3b09514e..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.Build.CppClean.log +++ /dev/null @@ -1,5 +0,0 @@ -f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\vc141.pdb -f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\vc141.idb -f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\m3db.tlog\cl.command.1.tlog -f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\m3db.tlog\cl.read.1.tlog -f:\projects\research\pongasoft_vst24-hello-world-master\m3db\vs2017\m3db\m3db\x64\debug\m3db.tlog\cl.write.1.tlog diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.log deleted file mode 100644 index 61f69062..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.log +++ /dev/null @@ -1,2 +0,0 @@ - plugin.cpp -f:\projects\research\pongasoft_vst24-hello-world-master\m3db\plugin.cpp(3): fatal error C1083: Cannot open include file: 'aeffect.h': No such file or directory diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.command.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.command.1.tlog deleted file mode 100644 index 953482d8..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.command.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.read.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.read.1.tlog deleted file mode 100644 index f667ffbe..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.read.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.write.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.write.1.tlog deleted file mode 100644 index ac9a2c4d..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/CL.write.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/m3db.lastbuildstate b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/m3db.lastbuildstate deleted file mode 100644 index 8639be57..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/m3db.lastbuildstate +++ /dev/null @@ -1,2 +0,0 @@ -#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.16299.0 -Debug|x64|F:\Projects\research\pongasoft_vst24-hello-world-master\M3dB\vs2017\m3db\| diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/unsuccessfulbuild b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/m3db.tlog/unsuccessfulbuild deleted file mode 100644 index e69de29b..00000000 diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.idb b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.idb deleted file mode 100644 index 6c9d354e..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.idb and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.pdb b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.pdb deleted file mode 100644 index 37d52c35..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Debug/vc141.pdb and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows.obj b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows.obj deleted file mode 100644 index de8cdca0..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows.obj and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows_cpp.obj b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows_cpp.obj deleted file mode 100644 index 9089efd7..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/lglw_windows_cpp.obj and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.Build.CppClean.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.Build.CppClean.log deleted file mode 100644 index 1b92334d..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.Build.CppClean.log +++ /dev/null @@ -1,15 +0,0 @@ -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\plugin.obj -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\lglw_windows.obj -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\lglw_windows_cpp.obj -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.dll -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.lib -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.exp -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.ipdb -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\x64\release\m3db.iobj -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\cl.command.1.tlog -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\cl.read.1.tlog -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\cl.write.1.tlog -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\link.command.1.tlog -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\link.read.1.tlog -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\link.write.1.tlog -f:\projects\research\vst24_gl_test\m3db\vs2017\m3db\m3db\x64\release\m3db.tlog\m3db.write.1u.tlog diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.log b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.log deleted file mode 100644 index 342b7676..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.log +++ /dev/null @@ -1,8 +0,0 @@ - lglw_windows.c - lglw_windows_cpp.cpp - plugin.cpp - Creating library F:\Projects\research\vst24_gl_test\M3dB\vs2017\m3db\x64\Release\m3db.lib and object F:\Projects\research\vst24_gl_test\M3dB\vs2017\m3db\x64\Release\m3db.exp - Generating code - All 57 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. - Finished generating code - m3db.vcxproj -> F:\Projects\research\vst24_gl_test\M3dB\vs2017\m3db\x64\Release\m3db.dll diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.command.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.command.1.tlog deleted file mode 100644 index d000e258..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.command.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.read.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.read.1.tlog deleted file mode 100644 index a1e3d7fc..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.read.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.write.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.write.1.tlog deleted file mode 100644 index 0553d180..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/CL.write.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.command.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.command.1.tlog deleted file mode 100644 index 2b6c0106..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.command.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.read.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.read.1.tlog deleted file mode 100644 index 6033d935..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.read.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.write.1.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.write.1.tlog deleted file mode 100644 index 8be0409e..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/link.write.1.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.lastbuildstate b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.lastbuildstate deleted file mode 100644 index fb547569..00000000 --- a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.lastbuildstate +++ /dev/null @@ -1,2 +0,0 @@ -#TargetFrameworkVersion=v4.0:PlatformToolSet=v141:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=10.0.16299.0 -Release|x64|F:\Projects\research\vst24_gl_test\M3dB\vs2017\m3db\| diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.write.1u.tlog b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.write.1u.tlog deleted file mode 100644 index da989482..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/m3db.tlog/m3db.write.1u.tlog and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/plugin.obj b/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/plugin.obj deleted file mode 100644 index 676e6ae0..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/m3db/x64/Release/plugin.obj and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.iobj b/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.iobj deleted file mode 100644 index 133f593b..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.iobj and /dev/null differ diff --git a/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.ipdb b/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.ipdb deleted file mode 100644 index 82d2507e..00000000 Binary files a/other/vst2_lglw_debug_plugin/vs2017/m3db/x64/Release/m3db.ipdb and /dev/null differ