The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/sound/pcm/matrix_map.h

Version: -  FREEBSD  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-2  -  FREEBSD-11-1  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-4  -  FREEBSD-10-3  -  FREEBSD-10-2  -  FREEBSD-10-1  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-3  -  FREEBSD-9-2  -  FREEBSD-9-1  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-4  -  FREEBSD-8-3  -  FREEBSD-8-2  -  FREEBSD-8-1  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-4  -  FREEBSD-7-3  -  FREEBSD-7-2  -  FREEBSD-7-1  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-4  -  FREEBSD-6-3  -  FREEBSD-6-2  -  FREEBSD-6-1  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-5  -  FREEBSD-5-4  -  FREEBSD-5-3  -  FREEBSD-5-2  -  FREEBSD-5-1  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  linux-2.6  -  linux-2.4.22  -  MK83  -  MK84  -  PLAN9  -  DFBSD  -  NETBSD  -  NETBSD5  -  NETBSD4  -  NETBSD3  -  NETBSD20  -  OPENBSD  -  xnu-517  -  xnu-792  -  xnu-792.6.70  -  xnu-1228  -  xnu-1456.1.26  -  xnu-1699.24.8  -  xnu-2050.18.24  -  OPENSOLARIS  -  minix-3-1-1 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3  *
    4  * Copyright (c) 2009 Ariff Abdullah <ariff@FreeBSD.org>
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   26  * SUCH DAMAGE.
   27  *
   28  * $FreeBSD: stable/12/sys/dev/sound/pcm/matrix_map.h 326255 2017-11-27 14:52:40Z pfg $
   29  */
   30 
   31 #ifndef _SND_MATRIX_MAP_H_
   32 #define _SND_MATRIX_MAP_H_
   33 
   34 /*
   35  * Standard matrix maps:
   36  *
   37  * struct pcmchan_matrix {
   38  *      .id = Matrix identity (see matrix.h). Custom defined should use
   39  *            one of SND_CHN_MATRIX_MISC (for whatever purposes) or
   40  *            SND_CHN_MATRIX_DRV (hardware driver).
   41  *      .channels = Total number of channels, including whatever 'extended'
   42  *                  (the X.ext notions, mostly LFE).
   43  *      .ext = Total number of extended channels (LFE).
   44  *      .map = {
   45  *              Sequences of channel type and interleave structure.
   46  *              [interleave offset] = {
   47  *                      .type = channel type (see matrix.h).
   48  *                      .members = Masks of channels that is acceptable as a
   49  *                                 member of this channel type.
   50  *              },
   51  *              [total channels] = {
   52  *                      .type = Maximum channels marker (SND_CHN_T_MAX).
   53  *                      .members = 0 (no channels allowed here).
   54  *              },
   55  *      },
   56  *      .mask = Mask of channels that exist in this map.
   57  *      .offset = {
   58  *              channel offset that directly translate to the above interleave
   59  *              offset according to SND_CHN_T_* definitions.
   60  *      }
   61  * };
   62  *
   63  * Rule of thumb: Avoid using SND_CHN_T_* that is marked with XXX (matrix.h),
   64  *                or be prepared for the horror to come.
   65  *
   66  */
   67 
   68 #define SND_CHN_MATRIX_MAP_1_0  {                                       \
   69         .id = SND_CHN_MATRIX_1_0,                                       \
   70         .channels = 1,                                                  \
   71         .ext = 0,                                                       \
   72         .map = {                                                        \
   73                 /* Mono, center, etc. */                                \
   74                 [0] = {                                                 \
   75                         .type = SND_CHN_T_FL,                           \
   76                         .members =                                      \
   77                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |     \
   78                             SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF |     \
   79                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |     \
   80                             SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL |     \
   81                             SND_CHN_T_MASK_SR                           \
   82                 },                                                      \
   83                 [1] = {                                                 \
   84                         .type = SND_CHN_T_MAX,                          \
   85                         .members = 0                                    \
   86                 }                                                       \
   87         },                                                              \
   88         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
   89                 SND_CHN_T_MASK_FC,                                      \
   90         .offset = {  0,  0,  0,  0,  0,  0, -1, -1,  0,                 \
   91                      0,  0, -1, -1, -1, -1, -1, -1, -1  }               \
   92 }
   93 
   94 #define SND_CHN_MATRIX_MAP_2_0  {                                       \
   95         .id = SND_CHN_MATRIX_2_0,                                       \
   96         .channels = 2,                                                  \
   97         .ext = 0,                                                       \
   98         .map = {                                                        \
   99                 /* Left */                                              \
  100                 [0] = {                                                 \
  101                         .type = SND_CHN_T_FL,                           \
  102                         .members =                                      \
  103                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC |     \
  104                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL |     \
  105                             SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL       \
  106                 },                                                      \
  107                 /* Right */                                             \
  108                 [1] = {                                                 \
  109                         .type = SND_CHN_T_FR,                           \
  110                         .members =                                      \
  111                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC |     \
  112                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BR |     \
  113                             SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SR       \
  114                 },                                                      \
  115                 [2] = {                                                 \
  116                         .type = SND_CHN_T_MAX,                          \
  117                         .members = 0                                    \
  118                 }                                                       \
  119         },                                                              \
  120         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR,                  \
  121         .offset = {  0,  1, -1, -1, -1, -1, -1, -1, -1,                 \
  122                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  123 }
  124 
  125 #define SND_CHN_MATRIX_MAP_2_1  {                                       \
  126         .id = SND_CHN_MATRIX_2_1,                                       \
  127         .channels = 3,                                                  \
  128         .ext = 1,                                                       \
  129         .map = {                                                        \
  130                 /* Left */                                              \
  131                 [0] = {                                                 \
  132                         .type = SND_CHN_T_FL,                           \
  133                         .members =                                      \
  134                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC |     \
  135                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC |     \
  136                             SND_CHN_T_MASK_SL                           \
  137                 },                                                      \
  138                 /* Right */                                             \
  139                 [1] = {                                                 \
  140                         .type = SND_CHN_T_FR,                           \
  141                         .members =                                      \
  142                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC |     \
  143                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC |     \
  144                             SND_CHN_T_MASK_SR                           \
  145                 },                                                      \
  146                 /* LFE */                                               \
  147                 [2] = {                                                 \
  148                         .type = SND_CHN_T_LF,                           \
  149                         .members = SND_CHN_T_MASK_LF                    \
  150                 },                                                      \
  151                 [3] = {                                                 \
  152                         .type = SND_CHN_T_MAX,                          \
  153                         .members = 0                                    \
  154                 }                                                       \
  155         },                                                              \
  156         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  157                 SND_CHN_T_MASK_LF,                                      \
  158         .offset = {  0,  1, -1,  2, -1, -1, -1, -1, -1,                 \
  159                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  160 }
  161 
  162 #define SND_CHN_MATRIX_MAP_3_0  {       /* 3 channels default */        \
  163         .id = SND_CHN_MATRIX_3_0,                                       \
  164         .channels = 3,                                                  \
  165         .ext = 0,                                                       \
  166         .map = {                                                        \
  167                 /* Left */                                              \
  168                 [0] = {                                                 \
  169                         .type = SND_CHN_T_FL,                           \
  170                         .members =                                      \
  171                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC |     \
  172                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SL       \
  173                 },                                                      \
  174                 /* Right */                                             \
  175                 [1] = {                                                 \
  176                         .type = SND_CHN_T_FR,                           \
  177                         .members =                                      \
  178                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC |     \
  179                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SR       \
  180                 },                                                      \
  181                 /* Rear Center */                                       \
  182                 [2] = {                                                 \
  183                         .type = SND_CHN_T_BC,                           \
  184                         .members =                                      \
  185                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL |     \
  186                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC |     \
  187                             SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR       \
  188                 },                                                      \
  189                 [3] = {                                                 \
  190                         .type = SND_CHN_T_MAX,                          \
  191                         .members = 0                                    \
  192                 }                                                       \
  193         },                                                              \
  194         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  195                 SND_CHN_T_MASK_BC,                                      \
  196         .offset = {  0,  1, -1, -1, -1, -1, -1, -1,  2,                 \
  197                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  198 }
  199 
  200 #define SND_CHN_MATRIX_MAP_3_1  {                                       \
  201         .id = SND_CHN_MATRIX_3_1,                                       \
  202         .channels = 4,                                                  \
  203         .ext = 1,                                                       \
  204         .map = {                                                        \
  205                 /* Left */                                              \
  206                 [0] = {                                                 \
  207                         .type = SND_CHN_T_FL,                           \
  208                         .members =                                      \
  209                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC |     \
  210                             SND_CHN_T_MASK_SL                           \
  211                 },                                                      \
  212                 /* Right */                                             \
  213                 [1] = {                                                 \
  214                         .type = SND_CHN_T_FR,                           \
  215                         .members =                                      \
  216                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC |     \
  217                             SND_CHN_T_MASK_SR                           \
  218                 },                                                      \
  219                 /* LFE */                                               \
  220                 [2] = {                                                 \
  221                         .type = SND_CHN_T_LF,                           \
  222                         .members = SND_CHN_T_MASK_LF                    \
  223                 },                                                      \
  224                 /* Rear Center */                                       \
  225                 [3] = {                                                 \
  226                         .type = SND_CHN_T_BC,                           \
  227                         .members =                                      \
  228                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |     \
  229                             SND_CHN_T_MASK_BC |                         \
  230                             SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR       \
  231                 },                                                      \
  232                 [4] = {                                                 \
  233                         .type = SND_CHN_T_MAX,                          \
  234                         .members = 0                                    \
  235                 }                                                       \
  236         },                                                              \
  237         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  238                 SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BC,                  \
  239         .offset = {  0,  1, -1,  2, -1, -1, -1, -1,  3,                 \
  240                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  241 }
  242 
  243 #define SND_CHN_MATRIX_MAP_4_0  {                                       \
  244         .id = SND_CHN_MATRIX_4_0,                                       \
  245         .channels = 4,                                                  \
  246         .ext = 0,                                                       \
  247         .map = {                                                        \
  248                 /* Left */                                              \
  249                 [0] = {                                                 \
  250                         .type = SND_CHN_T_FL,                           \
  251                         .members =                                      \
  252                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC |     \
  253                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SL       \
  254                 },                                                      \
  255                 /* Right */                                             \
  256                 [1] = {                                                 \
  257                         .type = SND_CHN_T_FR,                           \
  258                         .members =                                      \
  259                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC |     \
  260                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_SR       \
  261                 },                                                      \
  262                 /* Rear Left */                                         \
  263                 [2] = {                                                 \
  264                         .type = SND_CHN_T_BL,                           \
  265                         .members =                                      \
  266                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL |     \
  267                             SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL       \
  268                 },                                                      \
  269                 /* Rear Right */                                        \
  270                 [3] = {                                                 \
  271                         .type = SND_CHN_T_BR,                           \
  272                         .members =                                      \
  273                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BR |     \
  274                             SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SR       \
  275                 },                                                      \
  276                 [4] = {                                                 \
  277                         .type = SND_CHN_T_MAX,                          \
  278                         .members = 0                                    \
  279                 }                                                       \
  280         },                                                              \
  281         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  282                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR,                  \
  283         .offset = {  0,  1, -1, -1,  2,  3, -1, -1, -1,                 \
  284                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  285 }
  286 
  287 #define SND_CHN_MATRIX_MAP_4_1  {                                       \
  288         .id = SND_CHN_MATRIX_4_1,                                       \
  289         .channels = 5,                                                  \
  290         .ext = 1,                                                       \
  291         .map = {                                                        \
  292                 /* Left */                                              \
  293                 [0] = {                                                 \
  294                         .type = SND_CHN_T_FL,                           \
  295                         .members =                                      \
  296                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FC |     \
  297                             SND_CHN_T_MASK_SL                           \
  298                 },                                                      \
  299                 /* Right */                                             \
  300                 [1] = {                                                 \
  301                         .type = SND_CHN_T_FR,                           \
  302                         .members =                                      \
  303                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_FC |     \
  304                             SND_CHN_T_MASK_SR                           \
  305                 },                                                      \
  306                 /* Rear Left */                                         \
  307                 [2] = {                                                 \
  308                         .type = SND_CHN_T_BL,                           \
  309                         .members =                                      \
  310                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC |     \
  311                             SND_CHN_T_MASK_SL                           \
  312                 },                                                      \
  313                 /* Rear Right */                                        \
  314                 [3] = {                                                 \
  315                         .type = SND_CHN_T_BR,                           \
  316                         .members =                                      \
  317                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC |     \
  318                             SND_CHN_T_MASK_SR                           \
  319                 },                                                      \
  320                 /* LFE */                                               \
  321                 [4] = {                                                 \
  322                         .type = SND_CHN_T_LF,                           \
  323                         .members = SND_CHN_T_MASK_LF                    \
  324                 },                                                      \
  325                 [5] = {                                                 \
  326                         .type = SND_CHN_T_MAX,                          \
  327                         .members = 0                                    \
  328                 }                                                       \
  329         },                                                              \
  330         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  331                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |                 \
  332                 SND_CHN_T_MASK_LF,                                      \
  333         .offset = {  0,  1, -1,  4,  2,  3, -1, -1, -1,                 \
  334                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  335 }
  336 
  337 #define SND_CHN_MATRIX_MAP_5_0  {       /* 5 channels default */        \
  338         .id = SND_CHN_MATRIX_5_0,                                       \
  339         .channels = 5,                                                  \
  340         .ext = 0,                                                       \
  341         .map = {                                                        \
  342                 /* Left */                                              \
  343                 [0] = {                                                 \
  344                         .type = SND_CHN_T_FL,                           \
  345                         .members =                                      \
  346                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_LF |     \
  347                             SND_CHN_T_MASK_SL                           \
  348                 },                                                      \
  349                 /* Right */                                             \
  350                 [1] = {                                                 \
  351                         .type = SND_CHN_T_FR,                           \
  352                         .members =                                      \
  353                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_LF |     \
  354                             SND_CHN_T_MASK_SR                           \
  355                 },                                                      \
  356                 /* Rear Left */                                         \
  357                 [2] = {                                                 \
  358                         .type = SND_CHN_T_BL,                           \
  359                         .members =                                      \
  360                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BL |     \
  361                             SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SL       \
  362                 },                                                      \
  363                 /* Rear Right */                                        \
  364                 [3] = {                                                 \
  365                         .type = SND_CHN_T_BR,                           \
  366                         .members =                                      \
  367                             SND_CHN_T_MASK_LF | SND_CHN_T_MASK_BR |     \
  368                             SND_CHN_T_MASK_BC | SND_CHN_T_MASK_SR       \
  369                 },                                                      \
  370                 /* Center */                                            \
  371                 [4] = {                                                 \
  372                         .type = SND_CHN_T_FC,                           \
  373                         .members = SND_CHN_T_MASK_FC                    \
  374                 },                                                      \
  375                 [5] = {                                                 \
  376                         .type = SND_CHN_T_MAX,                          \
  377                         .members = 0                                    \
  378                 }                                                       \
  379         },                                                              \
  380         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  381                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |                 \
  382                 SND_CHN_T_MASK_FC,                                      \
  383         .offset = {  0,  1,  4, -1,  2,  3, -1, -1, -1,                 \
  384                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  385 }
  386 
  387 #define SND_CHN_MATRIX_MAP_5_1  {       /* 6 channels default */        \
  388         .id = SND_CHN_MATRIX_5_1,                                       \
  389         .channels = 6,                                                  \
  390         .ext = 1,                                                       \
  391         .map = {                                                        \
  392                 /* Left */                                              \
  393                 [0] = {                                                 \
  394                         .type = SND_CHN_T_FL,                           \
  395                         .members =                                      \
  396                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_SL       \
  397                 },                                                      \
  398                 /* Right */                                             \
  399                 [1] = {                                                 \
  400                         .type = SND_CHN_T_FR,                           \
  401                         .members =                                      \
  402                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_SR       \
  403                 },                                                      \
  404                 /* Rear Left */                                         \
  405                 [2] = {                                                 \
  406                         .type = SND_CHN_T_BL,                           \
  407                         .members =                                      \
  408                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC |     \
  409                             SND_CHN_T_MASK_SL                           \
  410                 },                                                      \
  411                 /* Rear Right */                                        \
  412                 [3] = {                                                 \
  413                         .type = SND_CHN_T_BR,                           \
  414                         .members =                                      \
  415                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC |     \
  416                             SND_CHN_T_MASK_SR                           \
  417                 },                                                      \
  418                 /* Center */                                            \
  419                 [4] = {                                                 \
  420                         .type = SND_CHN_T_FC,                           \
  421                         .members = SND_CHN_T_MASK_FC                    \
  422                 },                                                      \
  423                 /* LFE */                                               \
  424                 [5] = {                                                 \
  425                         .type = SND_CHN_T_LF,                           \
  426                         .members = SND_CHN_T_MASK_LF                    \
  427                 },                                                      \
  428                 [6] = {                                                 \
  429                         .type = SND_CHN_T_MAX,                          \
  430                         .members = 0                                    \
  431                 }                                                       \
  432         },                                                              \
  433         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  434                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |                 \
  435                 SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF,                  \
  436         .offset = {  0,  1,  4,  5,  2,  3, -1, -1, -1,                 \
  437                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  438 }
  439 
  440 #define SND_CHN_MATRIX_MAP_6_0  {                                       \
  441         .id = SND_CHN_MATRIX_6_0,                                       \
  442         .channels = 6,                                                  \
  443         .ext = 0,                                                       \
  444         .map  = {                                                       \
  445                 /* Left */                                              \
  446                 [0] = {                                                 \
  447                         .type = SND_CHN_T_FL,                           \
  448                         .members =                                      \
  449                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_LF |     \
  450                             SND_CHN_T_MASK_SL                           \
  451                 },                                                      \
  452                 /* Right */                                             \
  453                 [1] = {                                                 \
  454                         .type = SND_CHN_T_FR,                           \
  455                         .members =                                      \
  456                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_LF |     \
  457                             SND_CHN_T_MASK_SR                           \
  458                 },                                                      \
  459                 /* Rear Left */                                         \
  460                 [2] = {                                                 \
  461                         .type = SND_CHN_T_BL,                           \
  462                         .members =                                      \
  463                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_LF |     \
  464                             SND_CHN_T_MASK_SL                           \
  465                 },                                                      \
  466                 /* Rear Right */                                        \
  467                 [3] = {                                                 \
  468                         .type = SND_CHN_T_BR,                           \
  469                         .members =                                      \
  470                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_LF |     \
  471                             SND_CHN_T_MASK_SR                           \
  472                 },                                                      \
  473                 /* Center */                                            \
  474                 [4] = {                                                 \
  475                         .type = SND_CHN_T_FC,                           \
  476                         .members = SND_CHN_T_MASK_FC                    \
  477                 },                                                      \
  478                 /* Rear Center */                                       \
  479                 [5] = {                                                 \
  480                         .type = SND_CHN_T_BC,                           \
  481                         .members = SND_CHN_T_MASK_BC                    \
  482                 },                                                      \
  483                 [6] = {                                                 \
  484                         .type = SND_CHN_T_MAX,                          \
  485                         .members = 0                                    \
  486                 }                                                       \
  487         },                                                              \
  488         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  489                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |                 \
  490                 SND_CHN_T_MASK_FC | SND_CHN_T_MASK_BC,                  \
  491         .offset = {  0,  1,  4, -1,  2,  3, -1, -1,  5,                 \
  492                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  493 }
  494 
  495 #define SND_CHN_MATRIX_MAP_6_1  {                                       \
  496         .id = SND_CHN_MATRIX_6_1,                                       \
  497         .channels = 7,                                                  \
  498         .ext = 1,                                                       \
  499         .map = {                                                        \
  500                 /* Left */                                              \
  501                 [0] = {                                                 \
  502                         .type = SND_CHN_T_FL,                           \
  503                         .members =                                      \
  504                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_SL       \
  505                 },                                                      \
  506                 /* Right */                                             \
  507                 [1] = {                                                 \
  508                         .type = SND_CHN_T_FR,                           \
  509                         .members =                                      \
  510                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_SR       \
  511                 },                                                      \
  512                 /* Rear Left */                                         \
  513                 [2] = {                                                 \
  514                         .type = SND_CHN_T_BL,                           \
  515                         .members =                                      \
  516                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_SL       \
  517                 },                                                      \
  518                 /* Rear Right */                                        \
  519                 [3] = {                                                 \
  520                         .type = SND_CHN_T_BR,                           \
  521                         .members =                                      \
  522                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_SR       \
  523                 },                                                      \
  524                 /* Center */                                            \
  525                 [4] = {                                                 \
  526                         .type = SND_CHN_T_FC,                           \
  527                         .members = SND_CHN_T_MASK_FC                    \
  528                 },                                                      \
  529                 /* LFE */                                               \
  530                 [5] = {                                                 \
  531                         .type = SND_CHN_T_LF,                           \
  532                         .members = SND_CHN_T_MASK_LF                    \
  533                 },                                                      \
  534                 /* Rear Center */                                       \
  535                 [6] = {                                                 \
  536                         .type = SND_CHN_T_BC,                           \
  537                         .members = SND_CHN_T_MASK_BC                    \
  538                 },                                                      \
  539                 [7] = {                                                 \
  540                         .type = SND_CHN_T_MAX,                          \
  541                         .members = 0                                    \
  542                 }                                                       \
  543         },                                                              \
  544         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  545                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |                 \
  546                 SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF |                 \
  547                 SND_CHN_T_MASK_BC,                                      \
  548         .offset = {  0,  1,  4,  5,  2,  3, -1, -1,  6,                 \
  549                     -1, -1, -1, -1, -1, -1, -1, -1, -1  }               \
  550 }
  551 
  552 #define SND_CHN_MATRIX_MAP_7_0  {                                       \
  553         .id = SND_CHN_MATRIX_7_0,                                       \
  554         .channels = 7,                                                  \
  555         .ext = 0,                                                       \
  556         .map = {                                                        \
  557                 /* Left */                                              \
  558                 [0] = {                                                 \
  559                         .type = SND_CHN_T_FL,                           \
  560                         .members =                                      \
  561                             SND_CHN_T_MASK_FL | SND_CHN_T_MASK_LF       \
  562                 },                                                      \
  563                 /* Right */                                             \
  564                 [1] = {                                                 \
  565                         .type = SND_CHN_T_FR,                           \
  566                         .members =                                      \
  567                             SND_CHN_T_MASK_FR | SND_CHN_T_MASK_LF       \
  568                 },                                                      \
  569                 /* Rear Left */                                         \
  570                 [2] = {                                                 \
  571                         .type = SND_CHN_T_BL,                           \
  572                         .members =                                      \
  573                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC |     \
  574                             SND_CHN_T_MASK_LF                           \
  575                 },                                                      \
  576                 /* Rear Right */                                        \
  577                 [3] = {                                                 \
  578                         .type = SND_CHN_T_BR,                           \
  579                         .members =                                      \
  580                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC |     \
  581                             SND_CHN_T_MASK_LF                           \
  582                 },                                                      \
  583                 /* Center */                                            \
  584                 [4] = {                                                 \
  585                         .type = SND_CHN_T_FC,                           \
  586                         .members =                                      \
  587                             SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF       \
  588                 },                                                      \
  589                 /* Side Left */                                         \
  590                 [5] = {                                                 \
  591                         .type = SND_CHN_T_SL,                           \
  592                         .members =                                      \
  593                             SND_CHN_T_MASK_SL | SND_CHN_T_MASK_LF       \
  594                 },                                                      \
  595                 /* Side Right */                                        \
  596                 [6] = {                                                 \
  597                         .type = SND_CHN_T_SR,                           \
  598                         .members =                                      \
  599                             SND_CHN_T_MASK_SR | SND_CHN_T_MASK_LF       \
  600                 },                                                      \
  601                 [7] = {                                                 \
  602                         .type = SND_CHN_T_MAX,                          \
  603                         .members = 0                                    \
  604                 }                                                       \
  605         },                                                              \
  606         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  607                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |                 \
  608                 SND_CHN_T_MASK_FC |                                     \
  609                 SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR,                  \
  610         .offset = {  0,  1,  4, -1,  2,  3, -1, -1, -1,                 \
  611                      5,  6, -1, -1, -1, -1, -1, -1, -1  }               \
  612 }
  613 
  614 #define SND_CHN_MATRIX_MAP_7_1  {                                       \
  615         .id = SND_CHN_MATRIX_7_1,                                       \
  616         .channels = 8,                                                  \
  617         .ext = 1,                                                       \
  618         .map = {                                                        \
  619                 /* Left */                                              \
  620                 [0] = {                                                 \
  621                         .type = SND_CHN_T_FL,                           \
  622                         .members = SND_CHN_T_MASK_FL                    \
  623                 },                                                      \
  624                 /* Right */                                             \
  625                 [1] = {                                                 \
  626                         .type = SND_CHN_T_FR,                           \
  627                         .members = SND_CHN_T_MASK_FR                    \
  628                 },                                                      \
  629                 /* Rear Left */                                         \
  630                 [2] = {                                                 \
  631                         .type = SND_CHN_T_BL,                           \
  632                         .members =                                      \
  633                             SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BC       \
  634                 },                                                      \
  635                 /* Rear Right */                                        \
  636                 [3] = {                                                 \
  637                         .type = SND_CHN_T_BR,                           \
  638                         .members =                                      \
  639                             SND_CHN_T_MASK_BR | SND_CHN_T_MASK_BC       \
  640                 },                                                      \
  641                 /* Center */                                            \
  642                 [4] = {                                                 \
  643                         .type = SND_CHN_T_FC,                           \
  644                         .members = SND_CHN_T_MASK_FC                    \
  645                 },                                                      \
  646                 /* LFE */                                               \
  647                 [5] = {                                                 \
  648                         .type = SND_CHN_T_LF,                           \
  649                         .members = SND_CHN_T_MASK_LF                    \
  650                 },                                                      \
  651                 /* Side Left */                                         \
  652                 [6] = {                                                 \
  653                         .type = SND_CHN_T_SL,                           \
  654                         .members = SND_CHN_T_MASK_SL                    \
  655                 },                                                      \
  656                 /* Side Right */                                        \
  657                 [7] = {                                                 \
  658                         .type = SND_CHN_T_SR,                           \
  659                         .members = SND_CHN_T_MASK_SR                    \
  660                 },                                                      \
  661                 [8] = {                                                 \
  662                         .type = SND_CHN_T_MAX,                          \
  663                         .members = 0                                    \
  664                 }                                                       \
  665         },                                                              \
  666         .mask = SND_CHN_T_MASK_FL | SND_CHN_T_MASK_FR |                 \
  667                 SND_CHN_T_MASK_BL | SND_CHN_T_MASK_BR |                 \
  668                 SND_CHN_T_MASK_FC | SND_CHN_T_MASK_LF |                 \
  669                 SND_CHN_T_MASK_SL | SND_CHN_T_MASK_SR,                  \
  670         .offset = {  0,  1,  4,  5,  2,  3, -1, -1, -1,                 \
  671                      6,  7, -1, -1, -1, -1, -1, -1, -1  }               \
  672 }
  673 
  674 #endif  /* !_SND_MATRIX_MAP_H_ */

Cache object: 543ee1bf77f64fb4017dbb3eeb5001f1


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.