mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
VST3: Fixed a bug loading plug-ins
This commit is contained in:
parent
60d52182bb
commit
ef5608654d
5 changed files with 78 additions and 44 deletions
|
|
@ -26,7 +26,7 @@
|
|||
#if JUCE_MAC || JUCE_IOS
|
||||
|
||||
#include <juce_audio_basics/native/juce_mac_CoreAudioLayouts.h>
|
||||
#include <juce_core/native/juce_osx_ObjCHelpers.h>
|
||||
#include <juce_core/native/juce_mac_CFHelpers.h>
|
||||
|
||||
namespace juce
|
||||
{
|
||||
|
|
|
|||
|
|
@ -23,17 +23,16 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
#include <juce_core/system/juce_TargetPlatform.h>
|
||||
#include <juce_core/system/juce_CompilerWarnings.h>
|
||||
|
||||
//==============================================================================
|
||||
#if JucePlugin_Build_VST3 && (JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX)
|
||||
|
||||
#include <juce_core/system/juce_CompilerWarnings.h>
|
||||
#include <juce_core/system/juce_TargetPlatform.h>
|
||||
|
||||
#if JUCE_MAC
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#include <juce_core/native/juce_osx_ObjCHelpers.h>
|
||||
#endif
|
||||
|
||||
#if JUCE_PLUGINHOST_VST3
|
||||
#if JUCE_MAC
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#endif
|
||||
#undef JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY
|
||||
#define JUCE_VST3HEADERS_INCLUDE_HEADERS_ONLY 1
|
||||
#endif
|
||||
|
|
@ -80,6 +79,10 @@
|
|||
std::vector<std::pair<int, std::function<void (int)>>> getFdReadCallbacks();
|
||||
#endif
|
||||
|
||||
#if JUCE_MAC
|
||||
#include <juce_core/native/juce_mac_CFHelpers.h>
|
||||
#endif
|
||||
|
||||
namespace juce
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ JUCE_END_IGNORE_WARNINGS_MSVC
|
|||
#include "memory/juce_AllocationHooks.h"
|
||||
|
||||
#if JUCE_CORE_INCLUDE_OBJC_HELPERS && (JUCE_MAC || JUCE_IOS)
|
||||
#include "native/juce_osx_ObjCHelpers.h"
|
||||
#include "native/juce_mac_ObjCHelpers.h"
|
||||
#endif
|
||||
|
||||
#if JUCE_CORE_INCLUDE_COM_SMART_PTR && JUCE_WINDOWS
|
||||
|
|
|
|||
63
modules/juce_core/native/juce_mac_CFHelpers.h
Normal file
63
modules/juce_core/native/juce_mac_CFHelpers.h
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
==============================================================================
|
||||
|
||||
This file is part of the JUCE library.
|
||||
Copyright (c) 2020 - Raw Material Software Limited
|
||||
|
||||
JUCE is an open source library subject to commercial or open-source
|
||||
licensing.
|
||||
|
||||
The code included in this file is provided under the terms of the ISC license
|
||||
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
|
||||
To use, copy, modify, and/or distribute this software for any purpose with or
|
||||
without fee is hereby granted provided that the above copyright notice and
|
||||
this permission notice appear in all copies.
|
||||
|
||||
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||||
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||||
DISCLAIMED.
|
||||
|
||||
==============================================================================
|
||||
*/
|
||||
|
||||
/* This file contains a few helper functions that are used internally but which
|
||||
need to be kept away from the public headers because they use obj-C symbols.
|
||||
*/
|
||||
namespace juce
|
||||
{
|
||||
|
||||
template <typename CFType>
|
||||
struct CFObjectDeleter
|
||||
{
|
||||
void operator() (CFType object) const noexcept
|
||||
{
|
||||
if (object != nullptr)
|
||||
CFRelease (object);
|
||||
}
|
||||
};
|
||||
|
||||
template <typename CFType>
|
||||
using CFUniquePtr = std::unique_ptr<typename std::remove_pointer<CFType>::type, CFObjectDeleter<CFType>>;
|
||||
|
||||
template <typename CFType>
|
||||
struct CFObjectHolder
|
||||
{
|
||||
CFObjectHolder() = default;
|
||||
|
||||
CFObjectHolder (const CFObjectHolder&) = delete;
|
||||
CFObjectHolder (CFObjectHolder&&) = delete;
|
||||
|
||||
CFObjectHolder& operator= (const CFObjectHolder&) = delete;
|
||||
CFObjectHolder& operator= (CFObjectHolder&&) = delete;
|
||||
|
||||
~CFObjectHolder() noexcept
|
||||
{
|
||||
if (object != nullptr)
|
||||
CFRelease (object);
|
||||
}
|
||||
|
||||
// Public to facilitate passing the pointer address to functions
|
||||
CFType object = nullptr;
|
||||
};
|
||||
|
||||
} // namespace juce
|
||||
|
|
@ -20,6 +20,8 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
#include "juce_mac_CFHelpers.h"
|
||||
|
||||
/* This file contains a few helper functions that are used internally but which
|
||||
need to be kept away from the public headers because they use obj-C symbols.
|
||||
*/
|
||||
|
|
@ -240,40 +242,6 @@ struct NSObjectDeleter
|
|||
template <typename NSType>
|
||||
using NSUniquePtr = std::unique_ptr<NSType, NSObjectDeleter>;
|
||||
|
||||
template <typename CFType>
|
||||
struct CFObjectDeleter
|
||||
{
|
||||
void operator() (CFType object) const noexcept
|
||||
{
|
||||
if (object != nullptr)
|
||||
CFRelease (object);
|
||||
}
|
||||
};
|
||||
|
||||
template <typename CFType>
|
||||
using CFUniquePtr = std::unique_ptr<typename std::remove_pointer<CFType>::type, CFObjectDeleter<CFType>>;
|
||||
|
||||
template <typename CFType>
|
||||
struct CFObjectHolder
|
||||
{
|
||||
CFObjectHolder() = default;
|
||||
|
||||
CFObjectHolder (const CFObjectHolder&) = delete;
|
||||
CFObjectHolder (CFObjectHolder&&) = delete;
|
||||
|
||||
CFObjectHolder& operator= (const CFObjectHolder&) = delete;
|
||||
CFObjectHolder& operator= (CFObjectHolder&&) = delete;
|
||||
|
||||
~CFObjectHolder() noexcept
|
||||
{
|
||||
if (object != nullptr)
|
||||
CFRelease (object);
|
||||
}
|
||||
|
||||
// Public to facilitate passing the pointer address to functions
|
||||
CFType object = nullptr;
|
||||
};
|
||||
|
||||
//==============================================================================
|
||||
template <typename SuperclassType>
|
||||
struct ObjCClass
|
||||
Loading…
Add table
Add a link
Reference in a new issue