VST3: fetch midi mappings all at once, use it for note/sound-off
[carla.git] / source / modules / juce_audio_processors / utilities / ARA / juce_ARA_utils.h
blobe30cbbe3d008660a673ffb86e888e35d26478353
1 /*
2 ==============================================================================
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
23 ==============================================================================
26 #if JucePlugin_Enable_ARA
28 // Include ARA SDK headers
29 JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wgnu-zero-variadic-macro-arguments",
30 "-Wunused-parameter")
31 JUCE_BEGIN_IGNORE_WARNINGS_MSVC (6387)
33 #include <ARA_Library/PlugIn/ARAPlug.h>
35 JUCE_END_IGNORE_WARNINGS_GCC_LIKE
36 JUCE_END_IGNORE_WARNINGS_MSVC
38 namespace juce
41 using ARAViewSelection = ARA::PlugIn::ViewSelection;
42 using ARAContentUpdateScopes = ARA::ContentUpdateScopes;
43 using ARARestoreObjectsFilter = ARA::PlugIn::RestoreObjectsFilter;
44 using ARAStoreObjectsFilter = ARA::PlugIn::StoreObjectsFilter;
46 /** Converts an ARA::ARAUtf8String to a JUCE String. */
47 inline String convertARAString (ARA::ARAUtf8String str)
49 return String (CharPointer_UTF8 (str));
52 /** Converts a potentially NULL ARA::ARAUtf8String to a JUCE String.
54 Returns the JUCE equivalent of the provided string if it's not nullptr, and the fallback string
55 otherwise.
57 inline String convertOptionalARAString (ARA::ARAUtf8String str, const String& fallbackString = String())
59 return (str != nullptr) ? convertARAString (str) : fallbackString;
62 /** Converts an ARA::ARAColor* to a JUCE Colour. */
63 inline Colour convertARAColour (const ARA::ARAColor* colour)
65 return Colour::fromFloatRGBA (colour->r, colour->g, colour->b, 1.0f);
68 /** Converts a potentially NULL ARA::ARAColor* to a JUCE Colour.
70 Returns the JUCE equivalent of the provided colour if it's not nullptr, and the fallback colour
71 otherwise.
73 inline Colour convertOptionalARAColour (const ARA::ARAColor* colour, const Colour& fallbackColour = Colour())
75 return (colour != nullptr) ? convertARAColour (colour) : fallbackColour;
78 } // namespace juce
80 #include "juce_ARAModelObjects.h"
81 #include "juce_ARADocumentController.h"
82 #include "juce_AudioProcessor_ARAExtensions.h"
83 #include "juce_ARAPlugInInstanceRoles.h"
85 #endif