OpenShot Audio Library | OpenShotAudio
1.0.0
Toggle main menu visibility
Loading...
Searching...
No Matches
juce_Variant.h
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
The code included in this file is provided under the terms of the ISC license
11
http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12
To use, copy, modify, and/or distribute this software for any purpose with or
13
without fee is hereby granted provided that the above copyright notice and
14
this permission notice appear in all copies.
15
16
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18
DISCLAIMED.
19
20
==============================================================================
21
*/
22
23
namespace
juce
24
{
25
26
//==============================================================================
41
class
JUCE_API
var
42
{
43
public
:
44
//==============================================================================
48
struct
JUCE_API NativeFunctionArgs
49
{
50
NativeFunctionArgs (
const
var
& thisObject,
const
var
* args,
int
numArgs)
noexcept
;
51
52
const
var
& thisObject;
53
const
var
* arguments;
54
int
numArguments;
55
};
56
57
using
NativeFunction = std::function<
var
(
const
NativeFunctionArgs
&)>;
58
59
//==============================================================================
61
var
() noexcept;
62
64
~
var
() noexcept;
65
66
var
(const
var
& valueToCopy);
67
var
(
int
value) noexcept;
68
var
(int64 value) noexcept;
69
var
(
bool
value) noexcept;
70
var
(
double
value) noexcept;
71
var
(const
char
* value);
72
var
(const
wchar_t
* value);
73
var
(const
String
& value);
74
var
(const
Array
<
var
>& value);
75
var
(const
StringArray
& value);
76
var
(
ReferenceCountedObject
*
object
);
77
var
(NativeFunction method) noexcept;
78
var
(const
void
* binaryData,
size_t
dataSize);
79
var
(const
MemoryBlock
& binaryData);
80
81
var
& operator= (const
var
& valueToCopy);
82
var
& operator= (
int
value);
83
var
& operator= (int64 value);
84
var
& operator= (
bool
value);
85
var
& operator= (
double
value);
86
var
& operator= (const
char
* value);
87
var
& operator= (const
wchar_t
* value);
88
var
& operator= (const
String
& value);
89
var
& operator= (const
MemoryBlock
& value);
90
var
& operator= (const
Array
<
var
>& value);
91
var
& operator= (
ReferenceCountedObject
*
object
);
92
var
& operator= (NativeFunction method);
93
94
var
(
var
&&) noexcept;
95
var
(
String
&&);
96
var
(
MemoryBlock
&&);
97
var
(
Array
<
var
>&&);
98
var
& operator= (
var
&&) noexcept;
99
var
& operator= (
String
&&);
100
101
void
swapWith (
var
& other) noexcept;
102
104
static
var
undefined
() noexcept;
105
106
//==============================================================================
107
operator
int
() const noexcept;
108
operator int64() const noexcept;
109
operator
bool
() const noexcept;
110
operator
float
() const noexcept;
111
operator
double
() const noexcept;
112
operator
String
() const;
113
String
toString() const;
114
121
Array
<
var
>*
getArray
() const noexcept;
122
129
MemoryBlock
*
getBinaryData
() const noexcept;
130
131
ReferenceCountedObject
* getObject() const noexcept;
132
DynamicObject
* getDynamicObject() const noexcept;
133
134
//==============================================================================
135
bool
isVoid() const noexcept;
136
bool
isUndefined() const noexcept;
137
bool
isInt() const noexcept;
138
bool
isInt64() const noexcept;
139
bool
isBool() const noexcept;
140
bool
isDouble() const noexcept;
141
bool
isString() const noexcept;
142
bool
isObject() const noexcept;
143
bool
isArray() const noexcept;
144
bool
isBinaryData() const noexcept;
145
bool
isMethod() const noexcept;
146
163
bool
equals
(const
var
& other) const noexcept;
164
169
bool
equalsWithSameType
(const
var
& other) const noexcept;
170
172
bool
hasSameTypeAs
(const
var
& other) const noexcept;
173
178
var
clone
() const noexcept;
179
180
//==============================================================================
184
int
size
() const;
185
193
const
var
& operator[] (
int
arrayIndex) const;
194
202
var
& operator[] (
int
arrayIndex);
203
211
void
append
(const
var
& valueToAppend);
212
220
void
insert
(
int
index, const
var
& value);
221
227
void
remove
(
int
index);
228
235
void
resize
(
int
numArrayElementsWanted);
236
241
int
indexOf
(const
var
& value) const;
242
243
//==============================================================================
245
const
var
& operator[] (const
Identifier
& propertyName) const;
247
const
var
& operator[] (const
char
* propertyName) const;
250
var
getProperty
(const
Identifier
& propertyName, const
var
& defaultReturnValue) const;
252
bool
hasProperty
(const
Identifier
& propertyName) const noexcept;
253
255
var
call
(const
Identifier
& method) const;
257
var
call
(const
Identifier
& method, const
var
& arg1) const;
259
var
call
(const
Identifier
& method, const
var
& arg1, const
var
& arg2) const;
261
var
call
(const
Identifier
& method, const
var
& arg1, const
var
& arg2, const
var
& arg3);
263
var
call
(const
Identifier
& method, const
var
& arg1, const
var
& arg2, const
var
& arg3, const
var
& arg4) const;
265
var
call
(const
Identifier
& method, const
var
& arg1, const
var
& arg2, const
var
& arg3, const
var
& arg4, const
var
& arg5) const;
267
var
invoke
(const
Identifier
& method, const
var
* arguments,
int
numArguments) const;
269
NativeFunction
getNativeFunction
() const;
270
271
//==============================================================================
276
void
writeToStream
(
OutputStream
& output) const;
277
283
static
var
readFromStream
(
InputStream
& input);
284
285
//==============================================================================
286
#if JUCE_ALLOW_STATIC_NULL_VARIABLES && ! defined (DOXYGEN)
287
[[deprecated (
"This was a static empty var object, but is now deprecated as it's too easy to accidentally "
288
"use it indirectly during a static constructor leading to hard-to-find order-of-initialisation "
289
"problems. Use var() or {} instead. For returning an empty var from a function by reference, "
290
"use a function-local static var and return that."
)]]
291
static
const
var
null;
292
#endif
293
294
private
:
295
//==============================================================================
296
struct
VariantType;
297
struct
Instance;
298
299
union
ValueUnion
300
{
301
int
intValue;
302
int64 int64Value;
303
bool
boolValue;
304
double
doubleValue;
305
char
stringValue[
sizeof
(
String
)];
306
ReferenceCountedObject
* objectValue;
307
MemoryBlock
* binaryValue;
308
NativeFunction* methodValue;
309
};
310
311
friend
bool
canCompare (
const
var
&,
const
var
&);
312
313
const
VariantType* type;
314
ValueUnion value;
315
316
Array<var>
* convertToArray();
317
var
(
const
VariantType&)
noexcept
;
318
319
// This is needed to prevent the wrong constructor/operator being called
320
var
(
const
ReferenceCountedObject
*) =
delete
;
321
var
& operator= (
const
ReferenceCountedObject
*) =
delete
;
322
var
(
const
void
*) =
delete
;
323
var
& operator= (
const
void
*) =
delete
;
324
};
325
327
JUCE_API
bool
operator== (
const
var&,
const
var&);
329
JUCE_API
bool
operator!= (
const
var&,
const
var&);
331
JUCE_API
bool
operator< (
const
var&,
const
var&);
333
JUCE_API
bool
operator<= (
const
var&,
const
var&);
335
JUCE_API
bool
operator> (
const
var&,
const
var&);
337
JUCE_API
bool
operator>= (
const
var&,
const
var&);
338
339
JUCE_API
bool
operator== (
const
var&,
const
String&);
340
JUCE_API
bool
operator!= (
const
var&,
const
String&);
341
JUCE_API
bool
operator== (
const
var&,
const
char
*);
342
JUCE_API
bool
operator!= (
const
var&,
const
char
*);
343
}
// namespace juce
juce::Array
Definition
juce_Array.h:56
juce::DynamicObject
Definition
juce_DynamicObject.h:40
juce::Identifier
Definition
juce_Identifier.h:39
juce::InputStream
Definition
juce_InputStream.h:37
juce::MemoryBlock
Definition
juce_MemoryBlock.h:33
juce::OutputStream
Definition
juce_OutputStream.h:38
juce::ReferenceCountedObject
Definition
juce_ReferenceCountedObject.h:66
juce::StringArray
Definition
juce_StringArray.h:35
juce::String
Definition
juce_String.h:53
juce::var
Definition
juce_Variant.h:42
juce::var::undefined
static var undefined() noexcept
Definition
juce_Variant.cpp:538
juce::var::insert
void insert(int index, const var &value)
Definition
juce_Variant.cpp:802
juce::var::size
int size() const
Definition
juce_Variant.cpp:747
juce::var::invoke
var invoke(const Identifier &method, const var *arguments, int numArguments) const
Definition
juce_Variant.cpp:704
juce::var::writeToStream
void writeToStream(OutputStream &output) const
Definition
juce_Variant.cpp:821
juce::var::var
var() noexcept
Definition
juce_Variant.cpp:497
juce::var::getArray
Array< var > * getArray() const noexcept
Definition
juce_Variant.cpp:561
juce::var::indexOf
int indexOf(const var &value) const
Definition
juce_Variant.cpp:812
juce::var::getNativeFunction
NativeFunction getNativeFunction() const
Definition
juce_Variant.cpp:699
juce::var::hasProperty
bool hasProperty(const Identifier &propertyName) const noexcept
Definition
juce_Variant.cpp:691
juce::var::readFromStream
static var readFromStream(InputStream &input)
Definition
juce_Variant.cpp:826
juce::var::append
void append(const var &valueToAppend)
Definition
juce_Variant.cpp:791
juce::var::equals
bool equals(const var &other) const noexcept
Definition
juce_Variant.cpp:622
juce::var::equalsWithSameType
bool equalsWithSameType(const var &other) const noexcept
Definition
juce_Variant.cpp:627
juce::var::resize
void resize(int numArrayElementsWanted)
Definition
juce_Variant.cpp:807
juce::var::getProperty
var getProperty(const Identifier &propertyName, const var &defaultReturnValue) const
Definition
juce_Variant.cpp:683
juce::var::remove
void remove(int index)
Definition
juce_Variant.cpp:796
juce::var::call
var call(const Identifier &method) const
Definition
juce_Variant.cpp:712
juce::var::hasSameTypeAs
bool hasSameTypeAs(const var &other) const noexcept
Definition
juce_Variant.cpp:632
juce::var::clone
var clone() const noexcept
Definition
juce_Variant.cpp:664
juce::var::getBinaryData
MemoryBlock * getBinaryData() const noexcept
Definition
juce_Variant.cpp:562
juce::var::NativeFunctionArgs
Definition
juce_Variant.h:49
libopenshot-audio
JuceLibraryCode
modules
juce_core
containers
juce_Variant.h
Generated by
1.18.0