ALSA: Define more channel map positions
authorTakashi Iwai <tiwai@suse.de>
Wed, 12 Sep 2012 16:06:54 +0000 (18:06 +0200)
committerTakashi Iwai <tiwai@suse.de>
Wed, 12 Sep 2012 16:13:03 +0000 (18:13 +0200)
For following the standard, define more channel map positions and
shuffle the items a bit:

- As both PulseAudio and gstreamer define MONO channel position
  explicitly, we should follow that, too.  The mono streams point to
  this channel position unless they are explicitly assigned to certain
  channel positions.

- Top-front-* and Top-rear-* positions are added, carried from
  PulseAudio's definitions.

- Move NA and MONO definitions at the top of table right after
  UNKNOWN, since these are more abstract in comparison with other
  practical positions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Documentation/sound/alsa/Channel-Mapping-API.txt
include/sound/asound.h
sound/pci/ctxfi/ctpcm.c

index 4bbf12d5553fef59b0870654a4d77fd82ca5e368..3c43d1a4ca0ea88e91ac62b86d942fadf69888a6 100644 (file)
@@ -76,8 +76,10 @@ here is a cut:
 
 /* channel positions */
 enum {
-       /* this follows the alsa-lib mixer channel value + 1 */
        SNDRV_CHMAP_UNKNOWN = 0,
+       SNDRV_CHMAP_NA,         /* N/A, silent */
+       SNDRV_CHMAP_MONO,       /* mono stream */
+       /* this follows the alsa-lib mixer channel value + 3 */
        SNDRV_CHMAP_FL,         /* front left */
        SNDRV_CHMAP_FR,         /* front right */
        SNDRV_CHMAP_RL,         /* rear left */
@@ -98,8 +100,13 @@ enum {
        SNDRV_CHMAP_FCH,        /* front center high */
        SNDRV_CHMAP_FRH,        /* front right high */
        SNDRV_CHMAP_TC,         /* top center */
-       SNDRV_CHMAP_NA,         /* N/A, silent */
-       SNDRV_CHMAP_LAST = SNDRV_CHMAP_NA,
+       SNDRV_CHMAP_TFL,        /* top front left */
+       SNDRV_CHMAP_TFR,        /* top front right */
+       SNDRV_CHMAP_TFC,        /* top front center */
+       SNDRV_CHMAP_TRL,        /* top rear left */
+       SNDRV_CHMAP_TRR,        /* top rear right */
+       SNDRV_CHMAP_TRC,        /* top rear center */
+       SNDRV_CHMAP_LAST = SNDRV_CHMAP_TRC,
 };
 
 When a PCM stream can provide more than one channel map, you can
index 27686da0f650fd5daf99960ded33042a47f08837..dfe7d441748c208501d0cc3c3806ba293da9b862 100644 (file)
@@ -474,8 +474,10 @@ enum {
 
 /* channel positions */
 enum {
-       /* this follows the alsa-lib mixer channel value + 1 */
        SNDRV_CHMAP_UNKNOWN = 0,
+       SNDRV_CHMAP_NA,         /* N/A, silent */
+       SNDRV_CHMAP_MONO,       /* mono stream */
+       /* this follows the alsa-lib mixer channel value + 3 */
        SNDRV_CHMAP_FL,         /* front left */
        SNDRV_CHMAP_FR,         /* front right */
        SNDRV_CHMAP_RL,         /* rear left */
@@ -496,8 +498,13 @@ enum {
        SNDRV_CHMAP_FCH,        /* front center high */
        SNDRV_CHMAP_FRH,        /* front right high */
        SNDRV_CHMAP_TC,         /* top center */
-       SNDRV_CHMAP_NA,         /* N/A, silent */
-       SNDRV_CHMAP_LAST = SNDRV_CHMAP_NA,
+       SNDRV_CHMAP_TFL,        /* top front left */
+       SNDRV_CHMAP_TFR,        /* top front right */
+       SNDRV_CHMAP_TFC,        /* top front center */
+       SNDRV_CHMAP_TRL,        /* top rear left */
+       SNDRV_CHMAP_TRR,        /* top rear right */
+       SNDRV_CHMAP_TRC,        /* top rear center */
+       SNDRV_CHMAP_LAST = SNDRV_CHMAP_TRC,
 };
 
 #define SNDRV_CHMAP_POSITION_MASK      0xffff
index d317107d98cc79478db0017cb8f9d66c353b4022..e8a4feb1ed86ba59396368601f1cdbfeb364ce0a 100644 (file)
@@ -397,7 +397,7 @@ static struct snd_pcm_ops ct_pcm_capture_ops = {
 
 static const struct snd_pcm_chmap_elem surround_map[] = {
        { .channels = 1,
-         .map = { SNDRV_CHMAP_UNKNOWN } },
+         .map = { SNDRV_CHMAP_MONO } },
        { .channels = 2,
          .map = { SNDRV_CHMAP_RL, SNDRV_CHMAP_RR } },
        { }
@@ -405,7 +405,7 @@ static const struct snd_pcm_chmap_elem surround_map[] = {
 
 static const struct snd_pcm_chmap_elem clfe_map[] = {
        { .channels = 1,
-         .map = { SNDRV_CHMAP_UNKNOWN } },
+         .map = { SNDRV_CHMAP_MONO } },
        { .channels = 2,
          .map = { SNDRV_CHMAP_FC, SNDRV_CHMAP_LFE } },
        { }
@@ -413,7 +413,7 @@ static const struct snd_pcm_chmap_elem clfe_map[] = {
 
 static const struct snd_pcm_chmap_elem side_map[] = {
        { .channels = 1,
-         .map = { SNDRV_CHMAP_UNKNOWN } },
+         .map = { SNDRV_CHMAP_MONO } },
        { .channels = 2,
          .map = { SNDRV_CHMAP_SL, SNDRV_CHMAP_SR } },
        { }