HephAudio v3.1.0
A cross-platform C++ library for recording, playing, and processing audio on Windows, Android, Linux, iOS, and macOS.
Loading...
Searching...
No Matches
AudioChannelLayout.h File Reference
#include "HephAudioShared.h"
#include <cstdint>
#include <vector>

Go to the source code of this file.

Classes

struct  HephAudio::AudioChannelLayout
 stores information about the channel layout. More...
 

Macros

#define HEPHAUDIO_CH_MASK_MONO   (HephAudio::AudioChannelMask::FrontCenter)
 
#define HEPHAUDIO_CH_MASK_STEREO   (HephAudio::AudioChannelMask::FrontLeft | HephAudio::AudioChannelMask::FrontRight)
 
#define HEPHAUDIO_CH_MASK_2_POINT_1   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::LowFrequency)
 
#define HEPHAUDIO_CH_MASK_2_1   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::BackCenter)
 
#define HEPHAUDIO_CH_MASK_SURROUND   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::FrontCenter)
 
#define HEPHAUDIO_CH_MASK_3_POINT_1   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::LowFrequency)
 
#define HEPHAUDIO_CH_MASK_4_POINT_0   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::BackCenter)
 
#define HEPHAUDIO_CH_MASK_2_2   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::SideLeft | HephAudio::AudioChannelMask::SideRight)
 
#define HEPHAUDIO_CH_MASK_QUAD   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)
 
#define HEPHAUDIO_CH_MASK_4_POINT_1   (HEPHAUDIO_CH_MASK_4_POINT_0 | HephAudio::AudioChannelMask::LowFrequency)
 
#define HEPHAUDIO_CH_MASK_5_POINT_0   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::SideLeft | HephAudio::AudioChannelMask::SideRight)
 
#define HEPHAUDIO_CH_MASK_5_POINT_0_BACK   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)
 
#define HEPHAUDIO_CH_MASK_5_POINT_1   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::LowFrequency)
 
#define HEPHAUDIO_CH_MASK_5_POINT_1_BACK   (HEPHAUDIO_CH_MASK_5_POINT_0_BACK | HephAudio::AudioChannelMask::LowFrequency)
 
#define HEPHAUDIO_CH_MASK_6_POINT_0   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::BackCenter)
 
#define HEPHAUDIO_CH_MASK_6_POINT_0_FRONT   (HEPHAUDIO_CH_MASK_2_2 | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)
 
#define HEPHAUDIO_CH_MASK_HEXAGONAL   (HEPHAUDIO_CH_MASK_5_POINT_0_BACK | HephAudio::AudioChannelMask::BackCenter)
 
#define HEPHAUDIO_CH_MASK_6_POINT_1   (HEPHAUDIO_CH_MASK_5_POINT_1 | HephAudio::AudioChannelMask::BackCenter)
 
#define HEPHAUDIO_CH_MASK_6_POINT_1_BACK   (HEPHAUDIO_CH_MASK_5_POINT_1_BACK | HephAudio::AudioChannelMask::BackCenter)
 
#define HEPHAUDIO_CH_MASK_6_POINT_1_FRONT   (HEPHAUDIO_CH_MASK_6_POINT_0_FRONT | HephAudio::AudioChannelMask::LowFrequency)
 
#define HEPHAUDIO_CH_MASK_7_POINT_0   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)
 
#define HEPHAUDIO_CH_MASK_7_POINT_0_FRONT   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)
 
#define HEPHAUDIO_CH_MASK_7_POINT_1   (HEPHAUDIO_CH_MASK_5_POINT_1 | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)
 
#define HEPHAUDIO_CH_MASK_7_POINT_1_WIDE   (HEPHAUDIO_CH_MASK_5_POINT_1 | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)
 
#define HEPHAUDIO_CH_MASK_7_POINT_1_WIDE_BACK   (HEPHAUDIO_CH_MASK_5_POINT_1_BACK | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)
 
#define HEPHAUDIO_CH_MASK_OCTAGONAL   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackCenter | HephAudio::AudioChannelMask::BackRight)
 
#define HEPHAUDIO_CH_LAYOUT_MONO   HephAudio::AudioChannelLayout(1, HEPHAUDIO_CH_MASK_MONO)
 
#define HEPHAUDIO_CH_LAYOUT_STEREO   HephAudio::AudioChannelLayout(2, HEPHAUDIO_CH_MASK_STEREO)
 
#define HEPHAUDIO_CH_LAYOUT_2_POINT_1   HephAudio::AudioChannelLayout(3, HEPHAUDIO_CH_MASK_2_POINT_1)
 
#define HEPHAUDIO_CH_LAYOUT_2_1   HephAudio::AudioChannelLayout(3, HEPHAUDIO_CH_MASK_2_1)
 
#define HEPHAUDIO_CH_LAYOUT_SURROUND   HephAudio::AudioChannelLayout(3, HEPHAUDIO_CH_MASK_SURROUND)
 
#define HEPHAUDIO_CH_LAYOUT_3_POINT_1   HephAudio::AudioChannelLayout(4, HEPHAUDIO_CH_MASK_3_POINT_1)
 
#define HEPHAUDIO_CH_LAYOUT_4_POINT_0   HephAudio::AudioChannelLayout(4, HEPHAUDIO_CH_MASK_4_POINT_0)
 
#define HEPHAUDIO_CH_LAYOUT_2_2   HephAudio::AudioChannelLayout(4, HEPHAUDIO_CH_MASK_2_2)
 
#define HEPHAUDIO_CH_LAYOUT_QUAD   HephAudio::AudioChannelLayout(4, HEPHAUDIO_CH_MASK_QUAD)
 
#define HEPHAUDIO_CH_LAYOUT_4_POINT_1   HephAudio::AudioChannelLayout(5, HEPHAUDIO_CH_MASK_4_POINT_1)
 
#define HEPHAUDIO_CH_LAYOUT_5_POINT_0   HephAudio::AudioChannelLayout(5, HEPHAUDIO_CH_MASK_5_POINT_0)
 
#define HEPHAUDIO_CH_LAYOUT_5_POINT_0_BACK   HephAudio::AudioChannelLayout(5, HEPHAUDIO_CH_MASK_5_POINT_0_BACK)
 
#define HEPHAUDIO_CH_LAYOUT_5_POINT_1   HephAudio::AudioChannelLayout(6, HEPHAUDIO_CH_MASK_5_POINT_1)
 
#define HEPHAUDIO_CH_LAYOUT_5_POINT_1_BACK   HephAudio::AudioChannelLayout(6, HEPHAUDIO_CH_MASK_5_POINT_1_BACK)
 
#define HEPHAUDIO_CH_LAYOUT_6_POINT_0   HephAudio::AudioChannelLayout(6, HEPHAUDIO_CH_MASK_6_POINT_0)
 
#define HEPHAUDIO_CH_LAYOUT_6_POINT_0_FRONT   HephAudio::AudioChannelLayout(6, HEPHAUDIO_CH_MASK_6_POINT_0_FRONT)
 
#define HEPHAUDIO_CH_LAYOUT_HEXAGONAL   HephAudio::AudioChannelLayout(6, HEPHAUDIO_CH_MASK_HEXAGONAL)
 
#define HEPHAUDIO_CH_LAYOUT_6_POINT_1   HephAudio::AudioChannelLayout(7, HEPHAUDIO_CH_MASK_6_POINT_1)
 
#define HEPHAUDIO_CH_LAYOUT_6_POINT_1_BACK   HephAudio::AudioChannelLayout(7, HEPHAUDIO_CH_MASK_6_POINT_1_BACK)
 
#define HEPHAUDIO_CH_LAYOUT_6_POINT_1_FRONT   HephAudio::AudioChannelLayout(7, HEPHAUDIO_CH_MASK_6_POINT_1_FRONT)
 
#define HEPHAUDIO_CH_LAYOUT_7_POINT_0   HephAudio::AudioChannelLayout(7, HEPHAUDIO_CH_MASK_7_POINT_0)
 
#define HEPHAUDIO_CH_LAYOUT_7_POINT_0_FRONT   HephAudio::AudioChannelLayout(7, HEPHAUDIO_CH_MASK_7_POINT_0_FRONT)
 
#define HEPHAUDIO_CH_LAYOUT_7_POINT_1   HephAudio::AudioChannelLayout(8, HEPHAUDIO_CH_MASK_7_POINT_1)
 
#define HEPHAUDIO_CH_LAYOUT_7_POINT_1_WIDE   HephAudio::AudioChannelLayout(8, HEPHAUDIO_CH_MASK_7_POINT_1_WIDE)
 
#define HEPHAUDIO_CH_LAYOUT_7_POINT_1_WIDE_BACK   HephAudio::AudioChannelLayout(8, HEPHAUDIO_CH_MASK_7_POINT_1_WIDE_BACK)
 
#define HEPHAUDIO_CH_LAYOUT_OCTAGONAL   HephAudio::AudioChannelLayout(8, HEPHAUDIO_CH_MASK_OCTAGONAL)
 

Enumerations

enum  HephAudio::AudioChannelMask {
  Unknown = 0 , FrontLeft = 0x1 , FrontRight = 0x2 , FrontCenter = 0x4 ,
  LowFrequency = 0x8 , BackLeft = 0x10 , BackRight = 0x20 , FrontLeftOfCenter = 0x40 ,
  FrontRightOfCenter = 0x80 , BackCenter = 0x100 , SideLeft = 0x200 , SideRight = 0x400 ,
  TopCenter = 0x800 , TopFrontLeft = 0x1000 , TopFrontCenter = 0x2000 , TopFrontRight = 0x4000 ,
  TopBackLeft = 0x8000 , TopBackCenter = 0x10000 , TopBackRight = 0x20000
}
 

Functions

constexpr AudioChannelMask HephAudio::operator| (const AudioChannelMask &lhs, const AudioChannelMask &rhs)
 
constexpr AudioChannelMaskHephAudio::operator|= (AudioChannelMask &lhs, const AudioChannelMask &rhs)
 
constexpr AudioChannelMask HephAudio::operator& (const AudioChannelMask &lhs, const AudioChannelMask &rhs)
 
constexpr AudioChannelMaskHephAudio::operator&= (AudioChannelMask &lhs, const AudioChannelMask &rhs)
 

Macro Definition Documentation

◆ HEPHAUDIO_CH_MASK_MONO

#define HEPHAUDIO_CH_MASK_MONO   (HephAudio::AudioChannelMask::FrontCenter)

0 -> FC

◆ HEPHAUDIO_CH_MASK_STEREO

#define HEPHAUDIO_CH_MASK_STEREO   (HephAudio::AudioChannelMask::FrontLeft | HephAudio::AudioChannelMask::FrontRight)

0 -> FL
1 -> FR

◆ HEPHAUDIO_CH_MASK_2_POINT_1

#define HEPHAUDIO_CH_MASK_2_POINT_1   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::LowFrequency)

0 -> FL
1 -> FR
2 -> LFE

◆ HEPHAUDIO_CH_MASK_2_1

#define HEPHAUDIO_CH_MASK_2_1   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::BackCenter)

0 -> FL
1 -> FR
2 -> BC

◆ HEPHAUDIO_CH_MASK_SURROUND

#define HEPHAUDIO_CH_MASK_SURROUND   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::FrontCenter)

0 -> FL
1 -> FR
2 -> FC

◆ HEPHAUDIO_CH_MASK_3_POINT_1

#define HEPHAUDIO_CH_MASK_3_POINT_1   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::LowFrequency)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE

◆ HEPHAUDIO_CH_MASK_4_POINT_0

#define HEPHAUDIO_CH_MASK_4_POINT_0   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::BackCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> BC

◆ HEPHAUDIO_CH_MASK_2_2

#define HEPHAUDIO_CH_MASK_2_2   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::SideLeft | HephAudio::AudioChannelMask::SideRight)

0 -> FL
1 -> FR
2 -> SL
3 -> SR

◆ HEPHAUDIO_CH_MASK_QUAD

#define HEPHAUDIO_CH_MASK_QUAD   (HEPHAUDIO_CH_MASK_STEREO | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)

0 -> FL
1 -> FR
2 -> BL
3 -> BR

◆ HEPHAUDIO_CH_MASK_4_POINT_1

#define HEPHAUDIO_CH_MASK_4_POINT_1   (HEPHAUDIO_CH_MASK_4_POINT_0 | HephAudio::AudioChannelMask::LowFrequency)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> BC

◆ HEPHAUDIO_CH_MASK_5_POINT_0

#define HEPHAUDIO_CH_MASK_5_POINT_0   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::SideLeft | HephAudio::AudioChannelMask::SideRight)

0 -> FL
1 -> FR
2 -> FC
3 -> SL
4 -> SR

◆ HEPHAUDIO_CH_MASK_5_POINT_0_BACK

#define HEPHAUDIO_CH_MASK_5_POINT_0_BACK   (HEPHAUDIO_CH_MASK_SURROUND | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)

0 -> FL
1 -> FR
2 -> FC
3 -> BL
4 -> BR

◆ HEPHAUDIO_CH_MASK_5_POINT_1

#define HEPHAUDIO_CH_MASK_5_POINT_1   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::LowFrequency)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> SL
5 -> SR

◆ HEPHAUDIO_CH_MASK_5_POINT_1_BACK

#define HEPHAUDIO_CH_MASK_5_POINT_1_BACK   (HEPHAUDIO_CH_MASK_5_POINT_0_BACK | HephAudio::AudioChannelMask::LowFrequency)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> BL
5 -> BR

◆ HEPHAUDIO_CH_MASK_6_POINT_0

#define HEPHAUDIO_CH_MASK_6_POINT_0   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::BackCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> BC
4 -> SL
5 -> SR

◆ HEPHAUDIO_CH_MASK_6_POINT_0_FRONT

#define HEPHAUDIO_CH_MASK_6_POINT_0_FRONT   (HEPHAUDIO_CH_MASK_2_2 | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)

0 -> FL
1 -> FR
2 -> FLC
3 -> FRC
4 -> SL
5 -> SR

◆ HEPHAUDIO_CH_MASK_HEXAGONAL

#define HEPHAUDIO_CH_MASK_HEXAGONAL   (HEPHAUDIO_CH_MASK_5_POINT_0_BACK | HephAudio::AudioChannelMask::BackCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> BL
4 -> BR
5 -> BC

◆ HEPHAUDIO_CH_MASK_6_POINT_1

#define HEPHAUDIO_CH_MASK_6_POINT_1   (HEPHAUDIO_CH_MASK_5_POINT_1 | HephAudio::AudioChannelMask::BackCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> BC
5 -> SL
6 -> SR

◆ HEPHAUDIO_CH_MASK_6_POINT_1_BACK

#define HEPHAUDIO_CH_MASK_6_POINT_1_BACK   (HEPHAUDIO_CH_MASK_5_POINT_1_BACK | HephAudio::AudioChannelMask::BackCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> BL
5 -> BR
6 -> BC

◆ HEPHAUDIO_CH_MASK_6_POINT_1_FRONT

#define HEPHAUDIO_CH_MASK_6_POINT_1_FRONT   (HEPHAUDIO_CH_MASK_6_POINT_0_FRONT | HephAudio::AudioChannelMask::LowFrequency)

0 -> FL
1 -> FR
2 -> LFE
3 -> FLC
4 -> FRC
5 -> SL
6 -> SR

◆ HEPHAUDIO_CH_MASK_7_POINT_0

#define HEPHAUDIO_CH_MASK_7_POINT_0   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)

0 -> FL
1 -> FR
2 -> FC
3 -> BL
4 -> BR
5 -> SL
6 -> SR

◆ HEPHAUDIO_CH_MASK_7_POINT_0_FRONT

#define HEPHAUDIO_CH_MASK_7_POINT_0_FRONT   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> FLC
4 -> FRC
5 -> SL
6 -> SR

◆ HEPHAUDIO_CH_MASK_7_POINT_1

#define HEPHAUDIO_CH_MASK_7_POINT_1   (HEPHAUDIO_CH_MASK_5_POINT_1 | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackRight)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> BL
5 -> BR
6 -> SL
7 -> SR

◆ HEPHAUDIO_CH_MASK_7_POINT_1_WIDE

#define HEPHAUDIO_CH_MASK_7_POINT_1_WIDE   (HEPHAUDIO_CH_MASK_5_POINT_1 | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> FLC
5 -> FRC
6 -> SL
7 -> SR

◆ HEPHAUDIO_CH_MASK_7_POINT_1_WIDE_BACK

#define HEPHAUDIO_CH_MASK_7_POINT_1_WIDE_BACK   (HEPHAUDIO_CH_MASK_5_POINT_1_BACK | HephAudio::AudioChannelMask::FrontLeftOfCenter | HephAudio::AudioChannelMask::FrontRightOfCenter)

0 -> FL
1 -> FR
2 -> FC
3 -> LFE
4 -> BL
5 -> BR
6 -> FLC
7 -> FRC

◆ HEPHAUDIO_CH_MASK_OCTAGONAL

#define HEPHAUDIO_CH_MASK_OCTAGONAL   (HEPHAUDIO_CH_MASK_5_POINT_0 | HephAudio::AudioChannelMask::BackLeft | HephAudio::AudioChannelMask::BackCenter | HephAudio::AudioChannelMask::BackRight)

0 -> FL
1 -> FR
2 -> FC
3 -> BL
4 -> BR
5 -> BC
6 -> SL
7 -> SR

Enumeration Type Documentation

◆ AudioChannelMask

bit field that indicates which channels are used.