| 
							- /*
 -   ==============================================================================
 - 
 -    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.
 - 
 -   ==============================================================================
 - */
 - 
 - namespace juce
 - {
 - 
 - //==============================================================================
 - /**
 -     Represents a set of audio channel types.
 - 
 -     For example, you might have a set of left + right channels, which is a stereo
 -     channel set. It is a collection of values from the AudioChannelSet::ChannelType
 -     enum, where each type may only occur once within the set.
 - 
 -     The documentation below lists which AudioChannelSet corresponds to which native
 -     layouts used by AAX, VST2/VST3 and CoreAudio/AU. The layout tags in CoreAudio
 -     are particularly confusing. For example, the layout which is labeled as "7.1 SDDS"
 -     in Logic Pro, corresponds to CoreAudio/AU's kAudioChannelLayoutTag_DTS_7_0 tag, whereas
 -     AAX's DTS 7.1 Layout corresponds to CoreAudio/AU's
 -     kAudioChannelLayoutTag_MPEG_7_1_A format, etc. Please do not use the CoreAudio tag
 -     as an indication to the actual layout of the speakers.
 - 
 -     @see Bus
 - 
 -     @tags{Audio}
 - */
 - class JUCE_API  AudioChannelSet
 - {
 - public:
 -     /** Creates an empty channel set.
 -         You can call addChannel to add channels to the set.
 -     */
 -     AudioChannelSet() = default;
 - 
 -     /** Creates a zero-channel set which can be used to indicate that a
 -         bus is disabled. */
 -     static AudioChannelSet JUCE_CALLTYPE disabled();
 - 
 -     //==============================================================================
 -     /** Creates a one-channel mono set (centre).
 - 
 -         Is equivalent to: kMonoAAX (VST), AAX_eStemFormat_Mono (AAX), kAudioChannelLayoutTag_Mono (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE mono();
 - 
 - 
 -     /** Creates a set containing a stereo set (left, right).
 - 
 -         Is equivalent to: kStereo (VST), AAX_eStemFormat_Stereo (AAX), kAudioChannelLayoutTag_Stereo (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE stereo();
 - 
 - 
 -     //==============================================================================
 -     /** Creates a set containing an LCR set (left, right, centre).
 - 
 -         Is equivalent to: k30Cine (VST), AAX_eStemFormat_LCR (AAX), kAudioChannelLayoutTag_MPEG_3_0_A (CoreAudio)
 - 
 -         This format is referred to as "LRC" in Cubase.
 -         This format is referred to as "LCR" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE createLCR();
 - 
 - 
 -     /** Creates a set containing an LRS set (left, right, surround).
 - 
 -         Is equivalent to: k30Music (VST), n/a (AAX), kAudioChannelLayoutTag_ITU_2_1 (CoreAudio)
 - 
 -         This format is referred to as "LRS" in Cubase.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE createLRS();
 - 
 - 
 -     /** Creates a set containing an LCRS set (left, right, centre, surround).
 - 
 -         Is equivalent to: k40Cine (VST), AAX_eStemFormat_LCRS (AAX), kAudioChannelLayoutTag_MPEG_4_0_A (CoreAudio)
 - 
 -         This format is referred to as "LCRS (Pro Logic)" in Logic Pro.
 -         This format is referred to as "LRCS" in Cubase.
 -         This format is referred to as "LCRS" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE createLCRS();
 - 
 - 
 -     //==============================================================================
 -     /** Creates a set for a 5.0 surround setup (left, right, centre, leftSurround, rightSurround).
 - 
 -         Is equivalent to: k50 (VST), AAX_eStemFormat_5_0 (AAX), kAudioChannelLayoutTag_MPEG_5_0_A (CoreAudio)
 - 
 -         This format is referred to as "5.0" in Cubase.
 -         This format is referred to as "5.0" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create5point0();
 - 
 - 
 -     /** Creates a set for a 5.1 surround setup (left, right, centre, leftSurround, rightSurround, LFE).
 - 
 -         Is equivalent to: k51 (VST), AAX_eStemFormat_5_1 (AAX), kAudioChannelLayoutTag_MPEG_5_1_A (CoreAudio)
 - 
 -         This format is referred to as "5.1 (ITU 775)" in Logic Pro.
 -         This format is referred to as "5.1" in Cubase.
 -         This format is referred to as "5.1" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create5point1();
 - 
 - 
 -     /** Creates a set for a 6.0 Cine surround setup (left, right, centre, leftSurround, rightSurround, centreSurround).
 - 
 -         Is equivalent to: k60Cine (VST), AAX_eStemFormat_6_0 (AAX), kAudioChannelLayoutTag_AudioUnit_6_0 (CoreAudio)
 - 
 -         Logic Pro incorrectly uses this for the surround format labeled "6.1 (ES/EX)".
 -         This format is referred to as "6.0 Cine" in Cubase.
 -         This format is referred to as "6.0" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create6point0();
 - 
 - 
 -     /** Creates a set for a 6.1 Cine surround setup (left, right, centre, leftSurround, rightSurround, centreSurround, LFE).
 - 
 -          Is equivalent to: k61Cine (VST), AAX_eStemFormat_6_1 (AAX), kAudioChannelLayoutTag_MPEG_6_1_A (CoreAudio)
 - 
 -          This format is referred to as "6.1" in Pro Tools.
 -      */
 -     static AudioChannelSet JUCE_CALLTYPE create6point1();
 - 
 - 
 -     /** Creates a set for a 6.0 Music surround setup (left, right, leftSurround, rightSurround, leftSurroundSide, rightSurroundSide).
 - 
 -         Is equivalent to: k60Music (VST), n/a (AAX), kAudioChannelLayoutTag_DTS_6_0_A (CoreAudio)
 - 
 -         This format is referred to as "6.0 Music" in Cubase.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create6point0Music();
 - 
 - 
 -     /** Creates a set for a 6.0 Music surround setup (left, right, leftSurround, rightSurround, leftSurroundSide, rightSurroundSide, LFE).
 - 
 -         Is equivalent to: k61Music (VST), n/a (AAX), kAudioChannelLayoutTag_DTS_6_1_A (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create6point1Music();
 - 
 - 
 -     /** Creates a set for a DTS 7.0 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear).
 - 
 -         Is equivalent to: k70Music (VST), AAX_eStemFormat_7_0_DTS (AAX), kAudioChannelLayoutTag_AudioUnit_7_0 (CoreAudio)
 - 
 -         This format is referred to as "7.0" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create7point0();
 - 
 - 
 -     /** Creates a set for a SDDS 7.0 surround setup (left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre).
 - 
 -         Is equivalent to: k70Cine (VST), AAX_eStemFormat_7_0_SDDS (AAX), kAudioChannelLayoutTag_AudioUnit_7_0_Front (CoreAudio)
 - 
 -         This format is referred to as "7.0 SDDS" in Pro Tools.
 -      */
 -     static AudioChannelSet JUCE_CALLTYPE create7point0SDDS();
 - 
 - 
 -     /** Creates a set for a DTS 7.1 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE).
 - 
 -         Is equivalent to: k71CineSideFill (VST), AAX_eStemFormat_7_1_DTS (AAX), kAudioChannelLayoutTag_MPEG_7_1_C/kAudioChannelLayoutTag_ITU_3_4_1 (CoreAudio)
 - 
 -         This format is referred to as "7.1 (3/4.1)" in Logic Pro.
 -         This format is referred to as "7.1" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create7point1();
 - 
 - 
 -     /** Creates a set for a 7.1 surround setup (left, right, centre, leftSurround, rightSurround, leftCentre, rightCentre, LFE).
 - 
 -         Is equivalent to: k71Cine (VST), AAX_eStemFormat_7_1_SDDS (AAX), kAudioChannelLayoutTag_MPEG_7_1_A (CoreAudio)
 - 
 -         This format is referred to as "7.1 (SDDS)" in Logic Pro.
 -         This format is referred to as "7.1 SDDS" in Pro Tools.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create7point1SDDS();
 - 
 -     /** Creates a set for Dolby Atmos 7.0.2 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, topSideLeft, topSideRight).
 - 
 -         Is equivalent to: n/a (VST), AAX_eStemFormat_7_0_2 (AAX), n/a (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create7point0point2();
 - 
 -     /** Creates a set for Dolby Atmos 7.1.2 surround setup (left, right, centre, leftSurroundSide, rightSurroundSide, leftSurroundRear, rightSurroundRear, LFE, topSideLeft, topSideRight).
 - 
 -         Is equivalent to: k71_2 (VST), AAX_eStemFormat_7_1_2 (AAX), n/a (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE create7point1point2();
 - 
 - 
 -     //==============================================================================
 -     /** Creates a set for quadraphonic surround setup (left, right, leftSurround, rightSurround)
 - 
 -         Is equivalent to: k40Music (VST), AAX_eStemFormat_Quad (AAX), kAudioChannelLayoutTag_Quadraphonic (CoreAudio)
 - 
 -         This format is referred to as "Quadraphonic" in Logic Pro.
 -         This format is referred to as "Quadro" in Cubase.
 -         This format is referred to as "Quad" in Pro Tools.
 -      */
 -     static AudioChannelSet JUCE_CALLTYPE quadraphonic();
 - 
 - 
 -     /** Creates a set for pentagonal surround setup (left, right, centre, leftSurroundRear, rightSurroundRear).
 - 
 -         Is equivalent to: n/a (VST), n/a (AAX), kAudioChannelLayoutTag_Pentagonal (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE pentagonal();
 - 
 - 
 -     /** Creates a set for hexagonal surround setup (left, right, leftSurroundRear, rightSurroundRear, centre, surroundCentre).
 - 
 -         Is equivalent to: n/a (VST), n/a (AAX), kAudioChannelLayoutTag_Hexagonal (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE hexagonal();
 - 
 - 
 -     /** Creates a set for octagonal surround setup (left, right, leftSurround, rightSurround, centre, centreSurround, wideLeft, wideRight).
 - 
 -         Is equivalent to: n/a (VST), n/a (AAX), kAudioChannelLayoutTag_Octagonal (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE octagonal();
 - 
 -     //==============================================================================
 -     /** Creates a set for ACN, SN3D normalised ambisonic surround setups with a given order.
 - 
 -         Is equivalent to: kAmbiXXXOrderACN (VST), AAX_eStemFormat_Ambi_XXX_ACN (AAX), kAudioChannelLayoutTag_HOA_ACN_SN3D (CoreAudio)
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE ambisonic (int order = 1);
 - 
 -     /** Returns the order of the ambisonic layout represented by this AudioChannelSet. If the
 -         AudioChannelSet is not an ambisonic layout, then this method will return -1.
 -     */
 -     int getAmbisonicOrder() const;
 - 
 -     //==============================================================================
 -     /** Creates a set of untyped discrete channels. */
 -     static AudioChannelSet JUCE_CALLTYPE discreteChannels (int numChannels);
 - 
 -     /** Create a canonical channel set for a given number of channels.
 -         For example, numChannels = 1 will return mono, numChannels = 2 will return stereo, etc. */
 -     static AudioChannelSet JUCE_CALLTYPE canonicalChannelSet (int numChannels);
 - 
 -     /** Create a channel set for a given number of channels which is non-discrete.
 -         If numChannels is larger than the number of channels of the surround format
 -         with the maximum amount of channels (currently 7.1 Surround), then this
 -         function returns an empty set.*/
 -     static AudioChannelSet JUCE_CALLTYPE namedChannelSet (int numChannels);
 - 
 -     /** Return an array of channel sets which have a given number of channels */
 -     static Array<AudioChannelSet> JUCE_CALLTYPE channelSetsWithNumberOfChannels (int numChannels);
 - 
 -     //==============================================================================
 -     /** Represents different audio channel types. */
 -     enum ChannelType
 -     {
 -         unknown             = 0, /**< Unknown channel type. */
 - 
 -         //==============================================================================
 -         left                = 1, /**< L channel. */
 -         right               = 2, /**< R channel. */
 -         centre              = 3, /**< C channel. (Sometimes M for mono) */
 - 
 -         //==============================================================================
 -         LFE                 = 4,              /**< LFE channel. */
 -         leftSurround        = 5,              /**< Ls channel.  */
 -         rightSurround       = 6,              /**< Rs channel.  */
 -         leftCentre          = 7,              /**< Lc (AAX/VST), Lc used as Lss in AU for most layouts. */
 -         rightCentre         = 8,              /**< Rc (AAX/VST), Rc used as Rss in AU for most layouts. */
 -         centreSurround      = 9,              /**< Cs/S channel. */
 -         surround            = centreSurround, /**< Same as Centre Surround channel. */
 -         leftSurroundSide    = 10,             /**< Lss (AXX), Side Left  "Sl" (VST), Left Centre  "LC" (AU) channel. */
 -         rightSurroundSide   = 11,             /**< Rss (AXX), Side right "Sr" (VST), Right Centre "Rc" (AU) channel. */
 -         topMiddle           = 12,             /**< Top Middle channel.       */
 -         topFrontLeft        = 13,             /**< Top Front Left channel.   */
 -         topFrontCentre      = 14,             /**< Top Front Centre channel. */
 -         topFrontRight       = 15,             /**< Top Front Right channel.  */
 -         topRearLeft         = 16,             /**< Top Rear Left channel.    */
 -         topRearCentre       = 17,             /**< Top Rear Centre channel.  */
 -         topRearRight        = 18,             /**< Top Rear Right channel.   */
 -         LFE2                = 19,             /**< Second LFE channel.       */
 -         leftSurroundRear    = 20,             /**< Lsr (AAX), Lcs (VST), Rls (AU) channel. */
 -         rightSurroundRear   = 21,             /**< Rsr (AAX), Rcs (VST), Rrs (AU) channel. */
 -         wideLeft            = 22,             /**< Wide Left channel.  */
 -         wideRight           = 23,             /**< Wide Right channel. */
 - 
 -         //==============================================================================
 -         // Used by Dolby Atmos 7.0.2 and 7.1.2
 -         topSideLeft         = 28, /**< Lts (AAX), Tsl (VST) channel for Dolby Atmos. */
 -         topSideRight        = 29, /**< Rts (AAX), Tsr (VST) channel for Dolby Atmos. */
 - 
 -         //==============================================================================
 -         // Ambisonic ACN formats - all channels are SN3D normalised
 - 
 -         // zero-th and first-order ambisonic ACN
 -         ambisonicACN0       = 24, /**< Zero-th ambisonic channel number 0.     */
 -         ambisonicACN1       = 25, /**< First-order ambisonic channel number 1. */
 -         ambisonicACN2       = 26, /**< First-order ambisonic channel number 2. */
 -         ambisonicACN3       = 27, /**< First-order ambisonic channel number 3. */
 - 
 -         // second-order ambisonic
 -         ambisonicACN4       = 30, /**< Second-order ambisonic channel number 4. */
 -         ambisonicACN5       = 31, /**< Second-order ambisonic channel number 5. */
 -         ambisonicACN6       = 32, /**< Second-order ambisonic channel number 6. */
 -         ambisonicACN7       = 33, /**< Second-order ambisonic channel number 7. */
 -         ambisonicACN8       = 34, /**< Second-order ambisonic channel number 8. */
 - 
 -         // third-order ambisonic
 -         ambisonicACN9       = 35, /**< Third-order ambisonic channel number 9.  */
 -         ambisonicACN10      = 36, /**< Third-order ambisonic channel number 10. */
 -         ambisonicACN11      = 37, /**< Third-order ambisonic channel number 11. */
 -         ambisonicACN12      = 38, /**< Third-order ambisonic channel number 12. */
 -         ambisonicACN13      = 39, /**< Third-order ambisonic channel number 13. */
 -         ambisonicACN14      = 40, /**< Third-order ambisonic channel number 14. */
 -         ambisonicACN15      = 41, /**< Third-order ambisonic channel number 15. */
 - 
 -         // fourth-order ambisonic
 -         ambisonicACN16      = 42, /**< Fourth-order ambisonic channel number 16. */
 -         ambisonicACN17      = 43, /**< Fourth-order ambisonic channel number 17. */
 -         ambisonicACN18      = 44, /**< Fourth-order ambisonic channel number 18. */
 -         ambisonicACN19      = 45, /**< Fourth-order ambisonic channel number 19. */
 -         ambisonicACN20      = 46, /**< Fourth-order ambisonic channel number 20. */
 -         ambisonicACN21      = 47, /**< Fourth-order ambisonic channel number 21. */
 -         ambisonicACN22      = 48, /**< Fourth-order ambisonic channel number 22. */
 -         ambisonicACN23      = 49, /**< Fourth-order ambisonic channel number 23. */
 -         ambisonicACN24      = 50, /**< Fourth-order ambisonic channel number 24. */
 - 
 -         // fifth-order ambisonic
 -         ambisonicACN25      = 51, /**< Fifth-order ambisonic channel number 25. */
 -         ambisonicACN26      = 52, /**< Fifth-order ambisonic channel number 26. */
 -         ambisonicACN27      = 53, /**< Fifth-order ambisonic channel number 27. */
 -         ambisonicACN28      = 54, /**< Fifth-order ambisonic channel number 28. */
 -         ambisonicACN29      = 55, /**< Fifth-order ambisonic channel number 29. */
 -         ambisonicACN30      = 56, /**< Fifth-order ambisonic channel number 30. */
 -         ambisonicACN31      = 57, /**< Fifth-order ambisonic channel number 31. */
 -         ambisonicACN32      = 58, /**< Fifth-order ambisonic channel number 32. */
 -         ambisonicACN33      = 59, /**< Fifth-order ambisonic channel number 33. */
 -         ambisonicACN34      = 60, /**< Fifth-order ambisonic channel number 34. */
 -         ambisonicACN35      = 61, /**< Fifth-order ambisonic channel number 35. */
 - 
 -         //==============================================================================
 -         ambisonicW          = ambisonicACN0, /**< Same as zero-th ambisonic channel number 0.     */
 -         ambisonicX          = ambisonicACN3, /**< Same as first-order ambisonic channel number 3. */
 -         ambisonicY          = ambisonicACN1, /**< Same as first-order ambisonic channel number 1. */
 -         ambisonicZ          = ambisonicACN2, /**< Same as first-order ambisonic channel number 2. */
 - 
 -         //==============================================================================
 -         bottomFrontLeft     = 62, /**< Bottom Front Left (Bfl)   */
 -         bottomFrontCentre   = 63, /**< Bottom Front Centre (Bfc) */
 -         bottomFrontRight    = 64, /**< Bottom Front Right (Bfr)  */
 - 
 -         proximityLeft       = 65, /**< Proximity Left (Pl)  */
 -         proximityRight      = 66, /**< Proximity Right (Pr) */
 - 
 -         bottomSideLeft      = 67, /**< Bottom Side Left (Bsl)   */
 -         bottomSideRight     = 68, /**< Bottom Side Right (Bsr)  */
 -         bottomRearLeft      = 69, /**< Bottom Rear Left (Brl)  */
 -         bottomRearCentre    = 70, /**< Bottom Rear Center (Brc)  */
 -         bottomRearRight     = 71, /**< Bottom Rear Right (Brr)  */
 - 
 -         //==============================================================================
 -         discreteChannel0    = 128  /**< Non-typed individual channels are indexed upwards from this value. */
 -     };
 - 
 -     /** Returns the name of a given channel type. For example, this method may return "Surround Left". */
 -     static String JUCE_CALLTYPE getChannelTypeName (ChannelType);
 - 
 -     /** Returns the abbreviated name of a channel type. For example, this method may return "Ls". */
 -     static String JUCE_CALLTYPE getAbbreviatedChannelTypeName (ChannelType);
 - 
 -     /** Returns the channel type from an abbreviated name. */
 -     static ChannelType JUCE_CALLTYPE getChannelTypeFromAbbreviation (const String& abbreviation);
 - 
 -     //==============================================================================
 -     enum
 -     {
 -         maxChannelsOfNamedLayout = 36
 -     };
 - 
 -     /** Adds a channel to the set. */
 -     void addChannel (ChannelType newChannelType);
 - 
 -     /** Removes a channel from the set. */
 -     void removeChannel (ChannelType newChannelType);
 - 
 -     /** Returns the number of channels in the set. */
 -     int size() const noexcept;
 - 
 -     /** Returns true if there are no channels in the set. */
 -     bool isDisabled() const noexcept                    { return size() == 0; }
 - 
 -     /** Returns an array of all the types in this channel set. */
 -     Array<ChannelType> getChannelTypes() const;
 - 
 -     /** Returns the type of one of the channels in the set, by index. */
 -     ChannelType getTypeOfChannel (int channelIndex) const noexcept;
 - 
 -     /** Returns the index for a particular channel-type.
 -         Will return -1 if the this set does not contain a channel of this type. */
 -     int getChannelIndexForType (ChannelType type) const noexcept;
 - 
 -     /** Returns a string containing a whitespace-separated list of speaker types
 -         corresponding to each channel. For example in a 5.1 arrangement,
 -         the string may be "L R C Lfe Ls Rs". If the speaker arrangement is unknown,
 -         the returned string will be empty.*/
 -     String getSpeakerArrangementAsString() const;
 - 
 -     /** Returns an AudioChannelSet from a string returned by getSpeakerArrangementAsString
 - 
 -         @see getSpeakerArrangementAsString */
 -     static AudioChannelSet fromAbbreviatedString (const String& set);
 - 
 -     /** Returns the description of the current layout. For example, this method may return
 -         "Quadraphonic". Note that the returned string may not be unique. */
 -     String getDescription() const;
 - 
 -     /** Returns if this is a channel layout made-up of discrete channels. */
 -     bool isDiscreteLayout() const noexcept;
 - 
 -     /** Intersect two channel layouts. */
 -     void intersect (const AudioChannelSet& other)      { channels &= other.channels; }
 - 
 -     /** Creates a channel set for a list of channel types. This function will assert
 -         if you supply a duplicate channel.
 - 
 -         Note that this method ignores the order in which the channels are given, i.e.
 -         two arrays with the same elements but in a different order will still result
 -         in the same channel set.
 -     */
 -     static AudioChannelSet JUCE_CALLTYPE channelSetWithChannels (const Array<ChannelType>&);
 - 
 -     //==============================================================================
 -     // Conversion between wave and juce channel layout identifiers
 - 
 -     /** Create an AudioChannelSet from a WAVEFORMATEXTENSIBLE channelMask (typically used
 -         in .wav files). */
 -     static AudioChannelSet JUCE_CALLTYPE fromWaveChannelMask (int32 dwChannelMask);
 - 
 -     /** Returns a WAVEFORMATEXTENSIBLE channelMask representation (typically used in .wav
 -         files) of the receiver.
 - 
 -         Returns -1 if the receiver cannot be represented in a WAVEFORMATEXTENSIBLE channelMask
 -         representation.
 -     */
 -     int32 getWaveChannelMask() const noexcept;
 - 
 -     //==============================================================================
 -     bool operator== (const AudioChannelSet&) const noexcept;
 -     bool operator!= (const AudioChannelSet&) const noexcept;
 -     bool operator<  (const AudioChannelSet&) const noexcept;
 - 
 - private:
 -     //==============================================================================
 -     BigInteger channels;
 - 
 -     //==============================================================================
 -     explicit AudioChannelSet (uint32);
 -     explicit AudioChannelSet (const Array<ChannelType>&);
 - 
 -     //==============================================================================
 -     static int JUCE_CALLTYPE getAmbisonicOrderForNumChannels (int);
 - };
 - 
 - } // namespace juce
 
 
  |