FreeBSD kernel sound device code
matrix.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define SND_MULTICHANNEL   1
 
#define SND_CHN_T_FL   0 /* Front Left */
 
#define SND_CHN_T_FR   1 /* Front Right */
 
#define SND_CHN_T_FC   2 /* Front Center */
 
#define SND_CHN_T_LF   3 /* Low Frequency */
 
#define SND_CHN_T_BL   4 /* Back Left */
 
#define SND_CHN_T_BR   5 /* Back Right */
 
#define SND_CHN_T_FLC   6 /* Front Left Center XXX */
 
#define SND_CHN_T_FRC   7 /* Front Right Center XXX */
 
#define SND_CHN_T_BC   8 /* Back Center */
 
#define SND_CHN_T_SL   9 /* Side Left */
 
#define SND_CHN_T_SR   10 /* Side Right */
 
#define SND_CHN_T_TC   11 /* Top Center XXX */
 
#define SND_CHN_T_TFL   12 /* Top Front Left XXX */
 
#define SND_CHN_T_TFC   13 /* Top Front Center XXX */
 
#define SND_CHN_T_TFR   14 /* Top Front Right XXX */
 
#define SND_CHN_T_TBL   15 /* Top Back Left XXX */
 
#define SND_CHN_T_TBC   16 /* Top Back Center XXX */
 
#define SND_CHN_T_TBR   17 /* Top Back Right XXX */
 
#define SND_CHN_T_MAX   18 /* Maximum channels */
 
#define SND_CHN_T_ZERO   (SND_CHN_T_MAX + 1) /* Zero samples */
 
#define SND_CHN_T_LABELS
 
#define SND_CHN_T_NAMES
 
#define SND_CHN_T_MASK_FL   (1 << SND_CHN_T_FL)
 
#define SND_CHN_T_MASK_FR   (1 << SND_CHN_T_FR)
 
#define SND_CHN_T_MASK_FC   (1 << SND_CHN_T_FC)
 
#define SND_CHN_T_MASK_LF   (1 << SND_CHN_T_LF)
 
#define SND_CHN_T_MASK_BL   (1 << SND_CHN_T_BL)
 
#define SND_CHN_T_MASK_BR   (1 << SND_CHN_T_BR)
 
#define SND_CHN_T_MASK_FLC   (1 << SND_CHN_T_FLC)
 
#define SND_CHN_T_MASK_FRC   (1 << SND_CHN_T_FRC)
 
#define SND_CHN_T_MASK_BC   (1 << SND_CHN_T_BC)
 
#define SND_CHN_T_MASK_SL   (1 << SND_CHN_T_SL)
 
#define SND_CHN_T_MASK_SR   (1 << SND_CHN_T_SR)
 
#define SND_CHN_T_MASK_TC   (1 << SND_CHN_T_TC)
 
#define SND_CHN_T_MASK_TFL   (1 << SND_CHN_T_TFL)
 
#define SND_CHN_T_MASK_TFC   (1 << SND_CHN_T_TFC)
 
#define SND_CHN_T_MASK_TFR   (1 << SND_CHN_T_TFR)
 
#define SND_CHN_T_MASK_TBL   (1 << SND_CHN_T_TBL)
 
#define SND_CHN_T_MASK_TBC   (1 << SND_CHN_T_TBC)
 
#define SND_CHN_T_MASK_TBR   (1 << SND_CHN_T_TBR)
 
#define SND_CHN_LEFT_MASK
 
#define SND_CHN_RIGHT_MASK
 
#define SND_CHN_CENTER_MASK
 
#define SND_CHN_MATRIX_1_0   0
 
#define SND_CHN_MATRIX_1   SND_CHN_MATRIX_1_0
 
#define SND_CHN_MATRIX_2_0   1
 
#define SND_CHN_MATRIX_2   SND_CHN_MATRIX_2_0
 
#define SND_CHN_MATRIX_2_1   2
 
#define SND_CHN_MATRIX_3_0   3
 
#define SND_CHN_MATRIX_3   SND_CHN_MATRIX_3_0
 
#define SND_CHN_MATRIX_3_1   4
 
#define SND_CHN_MATRIX_4_0   5
 
#define SND_CHN_MATRIX_4   SND_CHN_MATRIX_4_0
 
#define SND_CHN_MATRIX_4_1   6
 
#define SND_CHN_MATRIX_5_0   7
 
#define SND_CHN_MATRIX_5   SND_CHN_MATRIX_5_0
 
#define SND_CHN_MATRIX_5_1   8
 
#define SND_CHN_MATRIX_6_0   9
 
#define SND_CHN_MATRIX_6   SND_CHN_MATRIX_5_1
 
#define SND_CHN_MATRIX_6_1   10
 
#define SND_CHN_MATRIX_7_0   11
 
#define SND_CHN_MATRIX_7   SND_CHN_MATRIX_6_1
 
#define SND_CHN_MATRIX_7_1   12
 
#define SND_CHN_MATRIX_8   SND_CHN_MATRIX_7_1
 
#define SND_CHN_MATRIX_MAX   13
 
#define SND_CHN_MATRIX_BEGIN   SND_CHN_MATRIX_1_0
 
#define SND_CHN_MATRIX_END   SND_CHN_MATRIX_7_1
 
#define SND_CHN_MATRIX_DRV   -4 /* driver own identity */
 
#define SND_CHN_MATRIX_PCMCHANNEL   -3 /* PCM channel identity */
 
#define SND_CHN_MATRIX_MISC   -2 /* misc, custom defined */
 
#define SND_CHN_MATRIX_UNKNOWN   -1 /* unknown */
 
#define SND_CHN_T_VOL_0DB   SND_CHN_T_MAX
 
#define SND_CHN_T_VOL_MAX   (SND_CHN_T_VOL_0DB + 1)
 
#define SND_CHN_T_BEGIN   SND_CHN_T_FL
 
#define SND_CHN_T_END   SND_CHN_T_TBR
 
#define SND_CHN_T_STEP   1
 
#define SND_CHN_MIN   1
 
#define SND_CHN_MAX   8
 
#define SND_VOL_C_MASTER   0
 
#define SND_VOL_C_PCM   1
 
#define SND_VOL_C_PCM_VAL   2
 
#define SND_VOL_C_MAX   3
 
#define SND_VOL_C_BEGIN   SND_VOL_C_PCM
 
#define SND_VOL_C_END   SND_VOL_C_PCM
 
#define SND_VOL_C_STEP   2
 
#define SND_VOL_C_VAL(x)   ((x) + 1)
 
#define SND_VOL_0DB_MIN   1
 
#define SND_VOL_0DB_MAX   100
 
#define SND_VOL_0DB_MASTER   100
 
#define SND_VOL_0DB_PCM   45
 
#define SND_VOL_RESOLUTION   8
 
#define SND_VOL_FLAT   (1 << SND_VOL_RESOLUTION)
 
#define SND_VOL_CALC_SAMPLE(x, y)   (((x) * (y)) >> SND_VOL_RESOLUTION)
 
#define SND_VOL_CALC_VAL(x, y, z)
 

Macro Definition Documentation

◆ SND_CHN_CENTER_MASK

#define SND_CHN_CENTER_MASK
Value:
SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_TC | \
SND_CHN_T_MASK_TFC | \
SND_CHN_T_MASK_TBC | \
SND_CHN_T_MASK_LF) /* XXX what?!? */
#define SND_CHN_T_MASK_FC
Definition: matrix.h:84

Definition at line 115 of file matrix.h.

◆ SND_CHN_LEFT_MASK

#define SND_CHN_LEFT_MASK
Value:
SND_CHN_T_MASK_BL | \
SND_CHN_T_MASK_FLC | \
SND_CHN_T_MASK_SL | \
SND_CHN_T_MASK_TFL | \
SND_CHN_T_MASK_TBL)
#define SND_CHN_T_MASK_FL
Definition: matrix.h:82

Definition at line 101 of file matrix.h.

◆ SND_CHN_MATRIX_1

#define SND_CHN_MATRIX_1   SND_CHN_MATRIX_1_0

Definition at line 128 of file matrix.h.

◆ SND_CHN_MATRIX_1_0

#define SND_CHN_MATRIX_1_0   0

Definition at line 127 of file matrix.h.

◆ SND_CHN_MATRIX_2

#define SND_CHN_MATRIX_2   SND_CHN_MATRIX_2_0

Definition at line 132 of file matrix.h.

◆ SND_CHN_MATRIX_2_0

#define SND_CHN_MATRIX_2_0   1

Definition at line 131 of file matrix.h.

◆ SND_CHN_MATRIX_2_1

#define SND_CHN_MATRIX_2_1   2

Definition at line 135 of file matrix.h.

◆ SND_CHN_MATRIX_3

#define SND_CHN_MATRIX_3   SND_CHN_MATRIX_3_0

Definition at line 137 of file matrix.h.

◆ SND_CHN_MATRIX_3_0

#define SND_CHN_MATRIX_3_0   3

Definition at line 136 of file matrix.h.

◆ SND_CHN_MATRIX_3_1

#define SND_CHN_MATRIX_3_1   4

Definition at line 140 of file matrix.h.

◆ SND_CHN_MATRIX_4

#define SND_CHN_MATRIX_4   SND_CHN_MATRIX_4_0

Definition at line 142 of file matrix.h.

◆ SND_CHN_MATRIX_4_0

#define SND_CHN_MATRIX_4_0   5

Definition at line 141 of file matrix.h.

◆ SND_CHN_MATRIX_4_1

#define SND_CHN_MATRIX_4_1   6

Definition at line 145 of file matrix.h.

◆ SND_CHN_MATRIX_5

#define SND_CHN_MATRIX_5   SND_CHN_MATRIX_5_0

Definition at line 147 of file matrix.h.

◆ SND_CHN_MATRIX_5_0

#define SND_CHN_MATRIX_5_0   7

Definition at line 146 of file matrix.h.

◆ SND_CHN_MATRIX_5_1

#define SND_CHN_MATRIX_5_1   8

Definition at line 150 of file matrix.h.

◆ SND_CHN_MATRIX_6

#define SND_CHN_MATRIX_6   SND_CHN_MATRIX_5_1

Definition at line 152 of file matrix.h.

◆ SND_CHN_MATRIX_6_0

#define SND_CHN_MATRIX_6_0   9

Definition at line 151 of file matrix.h.

◆ SND_CHN_MATRIX_6_1

#define SND_CHN_MATRIX_6_1   10

Definition at line 155 of file matrix.h.

◆ SND_CHN_MATRIX_7

#define SND_CHN_MATRIX_7   SND_CHN_MATRIX_6_1

Definition at line 157 of file matrix.h.

◆ SND_CHN_MATRIX_7_0

#define SND_CHN_MATRIX_7_0   11

Definition at line 156 of file matrix.h.

◆ SND_CHN_MATRIX_7_1

#define SND_CHN_MATRIX_7_1   12

Definition at line 160 of file matrix.h.

◆ SND_CHN_MATRIX_8

#define SND_CHN_MATRIX_8   SND_CHN_MATRIX_7_1

Definition at line 161 of file matrix.h.

◆ SND_CHN_MATRIX_BEGIN

#define SND_CHN_MATRIX_BEGIN   SND_CHN_MATRIX_1_0

Definition at line 165 of file matrix.h.

◆ SND_CHN_MATRIX_DRV

#define SND_CHN_MATRIX_DRV   -4 /* driver own identity */

Definition at line 169 of file matrix.h.

◆ SND_CHN_MATRIX_END

#define SND_CHN_MATRIX_END   SND_CHN_MATRIX_7_1

Definition at line 166 of file matrix.h.

◆ SND_CHN_MATRIX_MAX

#define SND_CHN_MATRIX_MAX   13

Definition at line 163 of file matrix.h.

◆ SND_CHN_MATRIX_MISC

#define SND_CHN_MATRIX_MISC   -2 /* misc, custom defined */

Definition at line 171 of file matrix.h.

◆ SND_CHN_MATRIX_PCMCHANNEL

#define SND_CHN_MATRIX_PCMCHANNEL   -3 /* PCM channel identity */

Definition at line 170 of file matrix.h.

◆ SND_CHN_MATRIX_UNKNOWN

#define SND_CHN_MATRIX_UNKNOWN   -1 /* unknown */

Definition at line 172 of file matrix.h.

◆ SND_CHN_MAX

#define SND_CHN_MAX   8

Definition at line 183 of file matrix.h.

◆ SND_CHN_MIN

#define SND_CHN_MIN   1

Definition at line 180 of file matrix.h.

◆ SND_CHN_RIGHT_MASK

#define SND_CHN_RIGHT_MASK
Value:
SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_FRC | \
SND_CHN_T_MASK_SR | \
SND_CHN_T_MASK_TFR | \
SND_CHN_T_MASK_TBR)
#define SND_CHN_T_MASK_FR
Definition: matrix.h:83

Definition at line 108 of file matrix.h.

◆ SND_CHN_T_BC

#define SND_CHN_T_BC   8 /* Back Center */

Definition at line 50 of file matrix.h.

◆ SND_CHN_T_BEGIN

#define SND_CHN_T_BEGIN   SND_CHN_T_FL

Definition at line 177 of file matrix.h.

◆ SND_CHN_T_BL

#define SND_CHN_T_BL   4 /* Back Left */

Definition at line 46 of file matrix.h.

◆ SND_CHN_T_BR

#define SND_CHN_T_BR   5 /* Back Right */

Definition at line 47 of file matrix.h.

◆ SND_CHN_T_END

#define SND_CHN_T_END   SND_CHN_T_TBR

Definition at line 178 of file matrix.h.

◆ SND_CHN_T_FC

#define SND_CHN_T_FC   2 /* Front Center */

Definition at line 44 of file matrix.h.

◆ SND_CHN_T_FL

#define SND_CHN_T_FL   0 /* Front Left */

Definition at line 42 of file matrix.h.

◆ SND_CHN_T_FLC

#define SND_CHN_T_FLC   6 /* Front Left Center XXX */

Definition at line 48 of file matrix.h.

◆ SND_CHN_T_FR

#define SND_CHN_T_FR   1 /* Front Right */

Definition at line 43 of file matrix.h.

◆ SND_CHN_T_FRC

#define SND_CHN_T_FRC   7 /* Front Right Center XXX */

Definition at line 49 of file matrix.h.

◆ SND_CHN_T_LABELS

#define SND_CHN_T_LABELS
Value:
{ \
"fl", "fr", "fc", "lf", "bl", "br", \
"flc", "frc", "bc", "sl", "sr", "tc", \
"tfl", "tfc", "tfr", "tbl", "tbc", "tbr" \
}

Definition at line 64 of file matrix.h.

◆ SND_CHN_T_LF

#define SND_CHN_T_LF   3 /* Low Frequency */

Definition at line 45 of file matrix.h.

◆ SND_CHN_T_MASK_BC

#define SND_CHN_T_MASK_BC   (1 << SND_CHN_T_BC)

Definition at line 90 of file matrix.h.

◆ SND_CHN_T_MASK_BL

#define SND_CHN_T_MASK_BL   (1 << SND_CHN_T_BL)

Definition at line 86 of file matrix.h.

◆ SND_CHN_T_MASK_BR

#define SND_CHN_T_MASK_BR   (1 << SND_CHN_T_BR)

Definition at line 87 of file matrix.h.

◆ SND_CHN_T_MASK_FC

#define SND_CHN_T_MASK_FC   (1 << SND_CHN_T_FC)

Definition at line 84 of file matrix.h.

◆ SND_CHN_T_MASK_FL

#define SND_CHN_T_MASK_FL   (1 << SND_CHN_T_FL)

Definition at line 82 of file matrix.h.

◆ SND_CHN_T_MASK_FLC

#define SND_CHN_T_MASK_FLC   (1 << SND_CHN_T_FLC)

Definition at line 88 of file matrix.h.

◆ SND_CHN_T_MASK_FR

#define SND_CHN_T_MASK_FR   (1 << SND_CHN_T_FR)

Definition at line 83 of file matrix.h.

◆ SND_CHN_T_MASK_FRC

#define SND_CHN_T_MASK_FRC   (1 << SND_CHN_T_FRC)

Definition at line 89 of file matrix.h.

◆ SND_CHN_T_MASK_LF

#define SND_CHN_T_MASK_LF   (1 << SND_CHN_T_LF)

Definition at line 85 of file matrix.h.

◆ SND_CHN_T_MASK_SL

#define SND_CHN_T_MASK_SL   (1 << SND_CHN_T_SL)

Definition at line 91 of file matrix.h.

◆ SND_CHN_T_MASK_SR

#define SND_CHN_T_MASK_SR   (1 << SND_CHN_T_SR)

Definition at line 92 of file matrix.h.

◆ SND_CHN_T_MASK_TBC

#define SND_CHN_T_MASK_TBC   (1 << SND_CHN_T_TBC)

Definition at line 98 of file matrix.h.

◆ SND_CHN_T_MASK_TBL

#define SND_CHN_T_MASK_TBL   (1 << SND_CHN_T_TBL)

Definition at line 97 of file matrix.h.

◆ SND_CHN_T_MASK_TBR

#define SND_CHN_T_MASK_TBR   (1 << SND_CHN_T_TBR)

Definition at line 99 of file matrix.h.

◆ SND_CHN_T_MASK_TC

#define SND_CHN_T_MASK_TC   (1 << SND_CHN_T_TC)

Definition at line 93 of file matrix.h.

◆ SND_CHN_T_MASK_TFC

#define SND_CHN_T_MASK_TFC   (1 << SND_CHN_T_TFC)

Definition at line 95 of file matrix.h.

◆ SND_CHN_T_MASK_TFL

#define SND_CHN_T_MASK_TFL   (1 << SND_CHN_T_TFL)

Definition at line 94 of file matrix.h.

◆ SND_CHN_T_MASK_TFR

#define SND_CHN_T_MASK_TFR   (1 << SND_CHN_T_TFR)

Definition at line 96 of file matrix.h.

◆ SND_CHN_T_MAX

#define SND_CHN_T_MAX   18 /* Maximum channels */

Definition at line 60 of file matrix.h.

◆ SND_CHN_T_NAMES

#define SND_CHN_T_NAMES
Value:
{ \
"Front Left", "Front Right", "Front Center", \
"Low Frequency Effects", \
"Back Left", "Back Right", \
"Front Left Center", "Front Right Center", \
"Back Center", \
"Side Left", "Side Right", \
"Top Center", \
"Top Front Left", "Top Front Center", "Top Front Right", \
"Top Back Left", "Top Back Center", "Top Back Right" \
}

Definition at line 70 of file matrix.h.

◆ SND_CHN_T_SL

#define SND_CHN_T_SL   9 /* Side Left */

Definition at line 51 of file matrix.h.

◆ SND_CHN_T_SR

#define SND_CHN_T_SR   10 /* Side Right */

Definition at line 52 of file matrix.h.

◆ SND_CHN_T_STEP

#define SND_CHN_T_STEP   1

Definition at line 179 of file matrix.h.

◆ SND_CHN_T_TBC

#define SND_CHN_T_TBC   16 /* Top Back Center XXX */

Definition at line 58 of file matrix.h.

◆ SND_CHN_T_TBL

#define SND_CHN_T_TBL   15 /* Top Back Left XXX */

Definition at line 57 of file matrix.h.

◆ SND_CHN_T_TBR

#define SND_CHN_T_TBR   17 /* Top Back Right XXX */

Definition at line 59 of file matrix.h.

◆ SND_CHN_T_TC

#define SND_CHN_T_TC   11 /* Top Center XXX */

Definition at line 53 of file matrix.h.

◆ SND_CHN_T_TFC

#define SND_CHN_T_TFC   13 /* Top Front Center XXX */

Definition at line 55 of file matrix.h.

◆ SND_CHN_T_TFL

#define SND_CHN_T_TFL   12 /* Top Front Left XXX */

Definition at line 54 of file matrix.h.

◆ SND_CHN_T_TFR

#define SND_CHN_T_TFR   14 /* Top Front Right XXX */

Definition at line 56 of file matrix.h.

◆ SND_CHN_T_VOL_0DB

#define SND_CHN_T_VOL_0DB   SND_CHN_T_MAX

Definition at line 174 of file matrix.h.

◆ SND_CHN_T_VOL_MAX

#define SND_CHN_T_VOL_MAX   (SND_CHN_T_VOL_0DB + 1)

Definition at line 175 of file matrix.h.

◆ SND_CHN_T_ZERO

#define SND_CHN_T_ZERO   (SND_CHN_T_MAX + 1) /* Zero samples */

Definition at line 62 of file matrix.h.

◆ SND_MULTICHANNEL

#define SND_MULTICHANNEL   1

Definition at line 36 of file matrix.h.

◆ SND_VOL_0DB_MASTER

#define SND_VOL_0DB_MASTER   100

Definition at line 208 of file matrix.h.

◆ SND_VOL_0DB_MAX

#define SND_VOL_0DB_MAX   100

Definition at line 206 of file matrix.h.

◆ SND_VOL_0DB_MIN

#define SND_VOL_0DB_MIN   1

Definition at line 205 of file matrix.h.

◆ SND_VOL_0DB_PCM

#define SND_VOL_0DB_PCM   45

Definition at line 209 of file matrix.h.

◆ SND_VOL_C_BEGIN

#define SND_VOL_C_BEGIN   SND_VOL_C_PCM

Definition at line 199 of file matrix.h.

◆ SND_VOL_C_END

#define SND_VOL_C_END   SND_VOL_C_PCM

Definition at line 200 of file matrix.h.

◆ SND_VOL_C_MASTER

#define SND_VOL_C_MASTER   0

Definition at line 194 of file matrix.h.

◆ SND_VOL_C_MAX

#define SND_VOL_C_MAX   3

Definition at line 197 of file matrix.h.

◆ SND_VOL_C_PCM

#define SND_VOL_C_PCM   1

Definition at line 195 of file matrix.h.

◆ SND_VOL_C_PCM_VAL

#define SND_VOL_C_PCM_VAL   2

Definition at line 196 of file matrix.h.

◆ SND_VOL_C_STEP

#define SND_VOL_C_STEP   2

Definition at line 201 of file matrix.h.

◆ SND_VOL_C_VAL

#define SND_VOL_C_VAL (   x)    ((x) + 1)

Definition at line 203 of file matrix.h.

◆ SND_VOL_CALC_SAMPLE

#define SND_VOL_CALC_SAMPLE (   x,
 
)    (((x) * (y)) >> SND_VOL_RESOLUTION)

Definition at line 214 of file matrix.h.

◆ SND_VOL_CALC_VAL

#define SND_VOL_CALC_VAL (   x,
  y,
 
)
Value:
(((((x)[y][z] << SND_VOL_RESOLUTION) / \
(x)[y][SND_CHN_T_VOL_0DB]) * \
(x)[SND_VOL_C_MASTER][z]) / \
#define SND_VOL_RESOLUTION
Definition: matrix.h:211
#define SND_CHN_T_VOL_0DB
Definition: matrix.h:174
#define SND_VOL_C_MASTER
Definition: matrix.h:194

Definition at line 216 of file matrix.h.

◆ SND_VOL_FLAT

#define SND_VOL_FLAT   (1 << SND_VOL_RESOLUTION)

Definition at line 212 of file matrix.h.

◆ SND_VOL_RESOLUTION

#define SND_VOL_RESOLUTION   8

Definition at line 211 of file matrix.h.