#ifndef _SND_MATRIX_MAP_H_
#define _SND_MATRIX_MAP_H_
#define SND_CHN_MATRIX_MAP_1_0 { \
.id = SND_CHN_MATRIX_1_0, \
.channels = 1, \
.ext = 0, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL | \
SND_CHN_T_MASK_SR \
}, \
[1] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_FC, \
.offset = { 0, 0, 0, 0, 0, 0, -1, -1, 0, \
0, 0, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_2_0 { \
.id = SND_CHN_MATRIX_2_0, \
.channels = 2, \
.ext = 0, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL | \
SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SR \
}, \
[2] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR, \
.offset = { 0, 1, -1, -1, -1, -1, -1, -1, -1, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_2_1 { \
.id = SND_CHN_MATRIX_2_1, \
.channels = 3, \
.ext = 1, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_LF, \
.members = SND_CHN_T_MASK_LF \
}, \
[3] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_LF, \
.offset = { 0, 1, -1, 2, -1, -1, -1, -1, -1, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_3_0 { \
.id = SND_CHN_MATRIX_3_0, \
.channels = 3, \
.ext = 0, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_BC, \
.members = \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL | \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR \
}, \
[3] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BC, \
.offset = { 0, 1, -1, -1, -1, -1, -1, -1, 2, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_3_1 { \
.id = SND_CHN_MATRIX_3_1, \
.channels = 4, \
.ext = 1, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_LF, \
.members = SND_CHN_T_MASK_LF \
}, \
\
[3] = { \
.type = SND_CHN_T_BC, \
.members = \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR \
}, \
[4] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BC, \
.offset = { 0, 1, -1, 2, -1, -1, -1, -1, 3, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_4_0 { \
.id = SND_CHN_MATRIX_4_0, \
.channels = 4, \
.ext = 0, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL | \
SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SR \
}, \
[4] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR, \
.offset = { 0, 1, -1, -1, 2, 3, -1, -1, -1, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_4_1 { \
.id = SND_CHN_MATRIX_4_1, \
.channels = 5, \
.ext = 1, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SL \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SR \
}, \
\
[4] = { \
.type = SND_CHN_T_LF, \
.members = SND_CHN_T_MASK_LF \
}, \
[5] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_LF, \
.offset = { 0, 1, -1, 4, 2, 3, -1, -1, -1, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_5_0 { \
.id = SND_CHN_MATRIX_5_0, \
.channels = 5, \
.ext = 0, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL | \
SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SR \
}, \
\
[4] = { \
.type = SND_CHN_T_FC, \
.members = SND_CHN_T_MASK_FC \
}, \
[5] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_FC, \
.offset = { 0, 1, 4, -1, 2, 3, -1, -1, -1, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_5_1 { \
.id = SND_CHN_MATRIX_5_1, \
.channels = 6, \
.ext = 1, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SL \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_SR \
}, \
\
[4] = { \
.type = SND_CHN_T_FC, \
.members = SND_CHN_T_MASK_FC \
}, \
\
[5] = { \
.type = SND_CHN_T_LF, \
.members = SND_CHN_T_MASK_LF \
}, \
[6] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF, \
.offset = { 0, 1, 4, 5, 2, 3, -1, -1, -1, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_6_0 { \
.id = SND_CHN_MATRIX_6_0, \
.channels = 6, \
.ext = 0, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_SL \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_SR \
}, \
\
[4] = { \
.type = SND_CHN_T_FC, \
.members = SND_CHN_T_MASK_FC \
}, \
\
[5] = { \
.type = SND_CHN_T_BC, \
.members = SND_CHN_T_MASK_BC \
}, \
[6] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_FC | SND_CHN_T_MASK_BC, \
.offset = { 0, 1, 4, -1, 2, 3, -1, -1, 5, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_6_1 { \
.id = SND_CHN_MATRIX_6_1, \
.channels = 7, \
.ext = 1, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_SL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_SR \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_SL \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_SR \
}, \
\
[4] = { \
.type = SND_CHN_T_FC, \
.members = SND_CHN_T_MASK_FC \
}, \
\
[5] = { \
.type = SND_CHN_T_LF, \
.members = SND_CHN_T_MASK_LF \
}, \
\
[6] = { \
.type = SND_CHN_T_BC, \
.members = SND_CHN_T_MASK_BC \
}, \
[7] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_BC, \
.offset = { 0, 1, 4, 5, 2, 3, -1, -1, 6, \
-1, -1, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_7_0 { \
.id = SND_CHN_MATRIX_7_0, \
.channels = 7, \
.ext = 0, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = \
SND_CHN_T_MASK_FL | SND_CHN_T_MASK_LF \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = \
SND_CHN_T_MASK_FR | SND_CHN_T_MASK_LF \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_LF \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC | \
SND_CHN_T_MASK_LF \
}, \
\
[4] = { \
.type = SND_CHN_T_FC, \
.members = \
SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF \
}, \
\
[5] = { \
.type = SND_CHN_T_SL, \
.members = \
SND_CHN_T_MASK_SL | SND_CHN_T_MASK_LF \
}, \
\
[6] = { \
.type = SND_CHN_T_SR, \
.members = \
SND_CHN_T_MASK_SR | SND_CHN_T_MASK_LF \
}, \
[7] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_FC | \
SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR, \
.offset = { 0, 1, 4, -1, 2, 3, -1, -1, -1, \
5, 6, -1, -1, -1, -1, -1, -1, -1 } \
}
#define SND_CHN_MATRIX_MAP_7_1 { \
.id = SND_CHN_MATRIX_7_1, \
.channels = 8, \
.ext = 1, \
.map = { \
\
[0] = { \
.type = SND_CHN_T_FL, \
.members = SND_CHN_T_MASK_FL \
}, \
\
[1] = { \
.type = SND_CHN_T_FR, \
.members = SND_CHN_T_MASK_FR \
}, \
\
[2] = { \
.type = SND_CHN_T_BL, \
.members = \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC \
}, \
\
[3] = { \
.type = SND_CHN_T_BR, \
.members = \
SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC \
}, \
\
[4] = { \
.type = SND_CHN_T_FC, \
.members = SND_CHN_T_MASK_FC \
}, \
\
[5] = { \
.type = SND_CHN_T_LF, \
.members = SND_CHN_T_MASK_LF \
}, \
\
[6] = { \
.type = SND_CHN_T_SL, \
.members = SND_CHN_T_MASK_SL \
}, \
\
[7] = { \
.type = SND_CHN_T_SR, \
.members = SND_CHN_T_MASK_SR \
}, \
[8] = { \
.type = SND_CHN_T_MAX, \
.members = 0 \
} \
}, \
.mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR | \
SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR | \
SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF | \
SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR, \
.offset = { 0, 1, 4, 5, 2, 3, -1, -1, -1, \
6, 7, -1, -1, -1, -1, -1, -1, -1 } \
}
#endif