LMMS
Loading...
Searching...
No Matches
juce_ARACommon.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
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.
22
23 ==============================================================================
24*/
25
26#pragma once
27
28namespace ARA
29{
30 struct ARAFactory;
31}
32
33namespace juce
34{
35
42{
43public:
44 ARAFactoryWrapper() = default;
45
50 explicit ARAFactoryWrapper (std::shared_ptr<const ARA::ARAFactory> factoryIn) : factory (std::move (factoryIn)) {}
51
56 const ARA::ARAFactory* get() const noexcept { return factory.get(); }
57
58private:
59 std::shared_ptr<const ARA::ARAFactory> factory;
60};
61
77
78template <typename Obj, typename Member, typename... Ts>
79constexpr Obj makeARASizedStruct (Member Obj::* member, Ts&&... ts)
80{
81 return { reinterpret_cast<uintptr_t> (&(static_cast<const Obj*> (nullptr)->*member)) + sizeof (Member),
82 std::forward<Ts> (ts)... };
83}
84
85} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
Definition juce_ARACommon.h:42
const ARA::ARAFactory * get() const noexcept
Definition juce_ARACommon.h:56
ARAFactoryWrapper(std::shared_ptr< const ARA::ARAFactory > factoryIn)
Definition juce_ARACommon.h:50
std::shared_ptr< const ARA::ARAFactory > factory
Definition juce_ARACommon.h:59
Definition juce_String.h:53
Definition juce_ARACommon.h:29
Definition carla_juce.cpp:31
constexpr Obj makeARASizedStruct(Member Obj::*member, Ts &&... ts)
Definition juce_ARACommon.h:79
Definition juce_Uuid.h:141
Definition juce_ARACommon.h:73
String errorMessage
Definition juce_ARACommon.h:75
ARAFactoryWrapper araFactory
Definition juce_ARACommon.h:74
#define const
Definition zconf.h:137