LMMS
Loading...
Searching...
No Matches
juce_AudioChannelSet.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 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
23namespace juce
24{
25
26//==============================================================================
47{
48public:
52 AudioChannelSet() = default;
53
57
58 //==============================================================================
64
65
71
72
73 //==============================================================================
82
83
91
92
102
103
104 //==============================================================================
113
114
124
125
135
136
144
145
153
154
160
161
169
170
178
179
188
189
198
204
210
216
222
228
234
240
252
253 //==============================================================================
263
264
270
271
277
278
284
285 //==============================================================================
290 static AudioChannelSet JUCE_CALLTYPE ambisonic (int order = 1);
291
295 int getAmbisonicOrder() const;
296
297 //==============================================================================
299 static AudioChannelSet JUCE_CALLTYPE discreteChannels (int numChannels);
300
303 static AudioChannelSet JUCE_CALLTYPE canonicalChannelSet (int numChannels);
304
309 static AudioChannelSet JUCE_CALLTYPE namedChannelSet (int numChannels);
310
313
314 //==============================================================================
317 {
319
320 //==============================================================================
321 left = 1,
322 right = 2,
323 centre = 3,
324
325 //==============================================================================
326 LFE = 4,
342 LFE2 = 19,
345 wideLeft = 22,
347
348 //==============================================================================
349 // Used by Dolby Atmos 7.0.2 and 7.1.2
352
353 //==============================================================================
354 // Ambisonic ACN formats - all channels are SN3D normalised
355
356 // zero-th and first-order ambisonic ACN
361
362 // second-order ambisonic
368
369 // third-order ambisonic
377
378 // fourth-order ambisonic
388
389 // fifth-order ambisonic
401
402 //==============================================================================
407
408 //==============================================================================
412
415
421
422 //==============================================================================
424 };
425
427 static String JUCE_CALLTYPE getChannelTypeName (ChannelType);
428
430 static String JUCE_CALLTYPE getAbbreviatedChannelTypeName (ChannelType);
431
433 static ChannelType JUCE_CALLTYPE getChannelTypeFromAbbreviation (const String& abbreviation);
434
435 //==============================================================================
436 enum
437 {
439 };
440
442 void addChannel (ChannelType newChannelType);
443
445 void removeChannel (ChannelType newChannelType);
446
448 int size() const noexcept;
449
451 bool isDisabled() const noexcept { return size() == 0; }
452
454 Array<ChannelType> getChannelTypes() const;
455
457 ChannelType getTypeOfChannel (int channelIndex) const noexcept;
458
461 int getChannelIndexForType (ChannelType type) const noexcept;
462
467 String getSpeakerArrangementAsString() const;
468
472 static AudioChannelSet fromAbbreviatedString (const String& set);
473
476 String getDescription() const;
477
479 bool isDiscreteLayout() const noexcept;
480
482 void intersect (const AudioChannelSet& other) { channels &= other.channels; }
483
491 static AudioChannelSet JUCE_CALLTYPE channelSetWithChannels (const Array<ChannelType>&);
492
493 //==============================================================================
494 // Conversion between wave and juce channel layout identifiers
495
498 static AudioChannelSet JUCE_CALLTYPE fromWaveChannelMask (int32 dwChannelMask);
499
506 int32 getWaveChannelMask() const noexcept;
507
508 //==============================================================================
509 bool operator== (const AudioChannelSet&) const noexcept;
510 bool operator!= (const AudioChannelSet&) const noexcept;
511 bool operator< (const AudioChannelSet&) const noexcept;
512
513private:
514 //==============================================================================
516
517 //==============================================================================
518 explicit AudioChannelSet (uint32);
519 explicit AudioChannelSet (const std::initializer_list<ChannelType>&);
520
521 //==============================================================================
523};
524
525} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition juce_Array.h:56
Definition juce_AudioChannelSet.h:47
int getAmbisonicOrder() const
Definition juce_AudioChannelSet.cpp:494
static AudioChannelSet JUCE_CALLTYPE create7point1()
Definition juce_AudioChannelSet.cpp:464
static AudioChannelSet JUCE_CALLTYPE namedChannelSet(int numChannels)
Definition juce_AudioChannelSet.cpp:525
static AudioChannelSet JUCE_CALLTYPE quadraphonic()
Definition juce_AudioChannelSet.cpp:466
static AudioChannelSet JUCE_CALLTYPE create5point0()
Definition juce_AudioChannelSet.cpp:456
static int JUCE_CALLTYPE getAmbisonicOrderForNumChannels(int)
Definition juce_AudioChannelSet.cpp:634
static AudioChannelSet JUCE_CALLTYPE create6point0()
Definition juce_AudioChannelSet.cpp:458
static AudioChannelSet JUCE_CALLTYPE create6point1Music()
Definition juce_AudioChannelSet.cpp:461
static AudioChannelSet JUCE_CALLTYPE create5point1point4()
Definition juce_AudioChannelSet.cpp:471
static AudioChannelSet JUCE_CALLTYPE disabled()
Definition juce_AudioChannelSet.cpp:450
static AudioChannelSet JUCE_CALLTYPE hexagonal()
Definition juce_AudioChannelSet.cpp:468
bool isDisabled() const noexcept
Definition juce_AudioChannelSet.h:451
static AudioChannelSet JUCE_CALLTYPE mono()
Definition juce_AudioChannelSet.cpp:451
static AudioChannelSet JUCE_CALLTYPE create7point0point4()
Definition juce_AudioChannelSet.cpp:474
BigInteger channels
Definition juce_AudioChannelSet.h:515
static AudioChannelSet JUCE_CALLTYPE createLRS()
Definition juce_AudioChannelSet.cpp:454
static Array< AudioChannelSet > JUCE_CALLTYPE channelSetsWithNumberOfChannels(int numChannels)
Definition juce_AudioChannelSet.cpp:539
static AudioChannelSet JUCE_CALLTYPE stereo()
Definition juce_AudioChannelSet.cpp:452
ChannelType
Definition juce_AudioChannelSet.h:317
@ wideRight
Definition juce_AudioChannelSet.h:346
@ topFrontRight
Definition juce_AudioChannelSet.h:338
@ ambisonicACN2
Definition juce_AudioChannelSet.h:359
@ topFrontLeft
Definition juce_AudioChannelSet.h:336
@ ambisonicACN25
Definition juce_AudioChannelSet.h:390
@ ambisonicACN28
Definition juce_AudioChannelSet.h:393
@ right
Definition juce_AudioChannelSet.h:322
@ ambisonicW
Definition juce_AudioChannelSet.h:403
@ ambisonicACN13
Definition juce_AudioChannelSet.h:374
@ ambisonicACN8
Definition juce_AudioChannelSet.h:367
@ ambisonicACN4
Definition juce_AudioChannelSet.h:363
@ leftSurround
Definition juce_AudioChannelSet.h:327
@ topRearLeft
Definition juce_AudioChannelSet.h:339
@ ambisonicACN15
Definition juce_AudioChannelSet.h:376
@ centreSurround
Definition juce_AudioChannelSet.h:331
@ topSideLeft
Definition juce_AudioChannelSet.h:350
@ ambisonicACN30
Definition juce_AudioChannelSet.h:395
@ surround
Definition juce_AudioChannelSet.h:332
@ unknown
Definition juce_AudioChannelSet.h:318
@ proximityRight
Definition juce_AudioChannelSet.h:414
@ ambisonicACN19
Definition juce_AudioChannelSet.h:382
@ ambisonicACN18
Definition juce_AudioChannelSet.h:381
@ bottomRearCentre
Definition juce_AudioChannelSet.h:419
@ ambisonicACN27
Definition juce_AudioChannelSet.h:392
@ centre
Definition juce_AudioChannelSet.h:323
@ ambisonicACN21
Definition juce_AudioChannelSet.h:384
@ bottomRearRight
Definition juce_AudioChannelSet.h:420
@ ambisonicACN26
Definition juce_AudioChannelSet.h:391
@ ambisonicACN22
Definition juce_AudioChannelSet.h:385
@ ambisonicACN12
Definition juce_AudioChannelSet.h:373
@ bottomRearLeft
Definition juce_AudioChannelSet.h:418
@ ambisonicACN24
Definition juce_AudioChannelSet.h:387
@ topSideRight
Definition juce_AudioChannelSet.h:351
@ ambisonicACN1
Definition juce_AudioChannelSet.h:358
@ ambisonicACN32
Definition juce_AudioChannelSet.h:397
@ rightSurroundRear
Definition juce_AudioChannelSet.h:344
@ rightSurroundSide
Definition juce_AudioChannelSet.h:334
@ ambisonicACN29
Definition juce_AudioChannelSet.h:394
@ ambisonicACN3
Definition juce_AudioChannelSet.h:360
@ ambisonicACN31
Definition juce_AudioChannelSet.h:396
@ bottomFrontRight
Definition juce_AudioChannelSet.h:411
@ ambisonicACN6
Definition juce_AudioChannelSet.h:365
@ ambisonicZ
Definition juce_AudioChannelSet.h:406
@ wideLeft
Definition juce_AudioChannelSet.h:345
@ ambisonicACN17
Definition juce_AudioChannelSet.h:380
@ proximityLeft
Definition juce_AudioChannelSet.h:413
@ ambisonicACN35
Definition juce_AudioChannelSet.h:400
@ rightSurround
Definition juce_AudioChannelSet.h:328
@ ambisonicACN20
Definition juce_AudioChannelSet.h:383
@ ambisonicACN16
Definition juce_AudioChannelSet.h:379
@ ambisonicY
Definition juce_AudioChannelSet.h:405
@ ambisonicACN0
Definition juce_AudioChannelSet.h:357
@ bottomFrontCentre
Definition juce_AudioChannelSet.h:410
@ ambisonicACN10
Definition juce_AudioChannelSet.h:371
@ topRearCentre
Definition juce_AudioChannelSet.h:340
@ ambisonicACN14
Definition juce_AudioChannelSet.h:375
@ topMiddle
Definition juce_AudioChannelSet.h:335
@ topFrontCentre
Definition juce_AudioChannelSet.h:337
@ ambisonicACN34
Definition juce_AudioChannelSet.h:399
@ topRearRight
Definition juce_AudioChannelSet.h:341
@ LFE2
Definition juce_AudioChannelSet.h:342
@ rightCentre
Definition juce_AudioChannelSet.h:330
@ leftCentre
Definition juce_AudioChannelSet.h:329
@ bottomSideRight
Definition juce_AudioChannelSet.h:417
@ ambisonicACN5
Definition juce_AudioChannelSet.h:364
@ ambisonicACN23
Definition juce_AudioChannelSet.h:386
@ ambisonicACN11
Definition juce_AudioChannelSet.h:372
@ ambisonicX
Definition juce_AudioChannelSet.h:404
@ leftSurroundSide
Definition juce_AudioChannelSet.h:333
@ bottomSideLeft
Definition juce_AudioChannelSet.h:416
@ ambisonicACN7
Definition juce_AudioChannelSet.h:366
@ ambisonicACN33
Definition juce_AudioChannelSet.h:398
@ discreteChannel0
Definition juce_AudioChannelSet.h:423
@ bottomFrontLeft
Definition juce_AudioChannelSet.h:409
@ leftSurroundRear
Definition juce_AudioChannelSet.h:343
@ left
Definition juce_AudioChannelSet.h:321
@ ambisonicACN9
Definition juce_AudioChannelSet.h:370
@ LFE
Definition juce_AudioChannelSet.h:326
static AudioChannelSet JUCE_CALLTYPE octagonal()
Definition juce_AudioChannelSet.cpp:469
static AudioChannelSet JUCE_CALLTYPE create6point1()
Definition juce_AudioChannelSet.cpp:459
static AudioChannelSet JUCE_CALLTYPE create5point1()
Definition juce_AudioChannelSet.cpp:457
static AudioChannelSet JUCE_CALLTYPE create7point0SDDS()
Definition juce_AudioChannelSet.cpp:463
static AudioChannelSet JUCE_CALLTYPE create5point1point2()
Definition juce_AudioChannelSet.cpp:470
@ maxChannelsOfNamedLayout
Definition juce_AudioChannelSet.h:438
static AudioChannelSet JUCE_CALLTYPE create9point1point6()
Definition juce_AudioChannelSet.cpp:477
static AudioChannelSet JUCE_CALLTYPE create6point0Music()
Definition juce_AudioChannelSet.cpp:460
static AudioChannelSet JUCE_CALLTYPE create7point0point2()
Definition juce_AudioChannelSet.cpp:472
static AudioChannelSet JUCE_CALLTYPE create7point1SDDS()
Definition juce_AudioChannelSet.cpp:465
static AudioChannelSet JUCE_CALLTYPE create7point0()
Definition juce_AudioChannelSet.cpp:462
static AudioChannelSet JUCE_CALLTYPE ambisonic(int order=1)
Definition juce_AudioChannelSet.cpp:479
static AudioChannelSet JUCE_CALLTYPE createLCRS()
Definition juce_AudioChannelSet.cpp:455
static AudioChannelSet JUCE_CALLTYPE create7point1point2()
Definition juce_AudioChannelSet.cpp:473
static AudioChannelSet JUCE_CALLTYPE canonicalChannelSet(int numChannels)
Definition juce_AudioChannelSet.cpp:511
static AudioChannelSet JUCE_CALLTYPE discreteChannels(int numChannels)
Definition juce_AudioChannelSet.cpp:504
void intersect(const AudioChannelSet &other)
Definition juce_AudioChannelSet.h:482
static AudioChannelSet JUCE_CALLTYPE create7point1point6()
Definition juce_AudioChannelSet.cpp:476
static AudioChannelSet JUCE_CALLTYPE createLCR()
Definition juce_AudioChannelSet.cpp:453
static AudioChannelSet JUCE_CALLTYPE pentagonal()
Definition juce_AudioChannelSet.cpp:467
static AudioChannelSet JUCE_CALLTYPE create7point1point4()
Definition juce_AudioChannelSet.cpp:475
Definition juce_BigInteger.h:39
Definition juce_String.h:53
#define JUCE_CALLTYPE
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
unsigned int uint32
Definition juce_MathsFunctions.h:45
signed int int32
Definition juce_MathsFunctions.h:43
Definition juce_Uuid.h:141
ulg size
Definition extract.c:2350
#define const
Definition zconf.h:137