]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Add PCM "hdmi"
authorTakashi Iwai <tiwai@suse.de>
Fri, 7 Mar 2008 16:15:10 +0000 (17:15 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 7 Mar 2008 16:15:10 +0000 (17:15 +0100)
Added the new PCM "hdmi" for HDA-Intel.
It's still experimental.

src/conf/alsa.conf
src/conf/cards/HDA-Intel.conf
src/conf/pcm/Makefile.am
src/conf/pcm/hdmi.conf [new file with mode: 0644]

index 4bf8f07e3d9e5f6c6c0b59b59685434655ebfd2c..5c881f1abe3de3ecfc9973430a7c7c09c931263e 100644 (file)
@@ -125,6 +125,7 @@ pcm.surround51 cards.pcm.surround51
 pcm.surround71 cards.pcm.surround71
 pcm.iec958 cards.pcm.iec958
 pcm.spdif iec958
+pcm.hdmi cards.pcm.hdmi
 pcm.dmix cards.pcm.dmix
 pcm.dsnoop cards.pcm.dsnoop
 pcm.modem cards.pcm.modem
index 206ae2476f08d2d13bd4ac5d4fe33790f910c9b6..bcbcb9b5a0ba9433f301c8ce7975380d4dd15b2c 100644 (file)
@@ -137,6 +137,51 @@ HDA-Intel.pcm.iec958.0 {
        hint.device 1
 }
 
+<confdir:pcm/hdmi.conf>
+
+HDA-Intel.pcm.hdmi.0 {
+       @args [ CARD AES0 AES1 AES2 AES3 ]
+       @args.CARD {
+               type string
+       }
+       @args.AES0 {
+               type integer
+       }
+       @args.AES1 {
+               type integer
+       }
+       @args.AES2 {
+               type integer
+       }
+       @args.AES3 {
+               type integer
+       }
+       type hooks
+       slave.pcm {
+               type hw
+               card $CARD
+               device 3
+       }
+       hooks.0 {
+               type ctl_elems
+               hook_args [
+               {
+                       name "IEC958 Playback Default"
+                       lock true
+                       preserve true
+                       value [ $AES0 $AES1 $AES2 $AES3 ]
+               }
+               {
+                       name "IEC958 Playback Switch"
+                       lock true
+                       preserve true
+                       value true
+               }
+               ]
+       }
+       hint.device 3
+}
+
 <confdir:pcm/modem.conf>
 
 HDA-Intel.pcm.modem.0 {
index 7d9c0772d07d58660bfd77fa62a9f3c32d39bc18..48ba45f74572cf9be8c57bb5bc58c1c2c7c90c56 100644 (file)
@@ -1,7 +1,7 @@
 cfg_files = default.conf front.conf rear.conf center_lfe.conf side.conf\
            surround40.conf surround41.conf \
            surround50.conf surround51.conf \
-           surround71.conf iec958.conf modem.conf \
+           surround71.conf iec958.conf hdmi.conf modem.conf \
            dmix.conf dsnoop.conf \
            dpl.conf
 
diff --git a/src/conf/pcm/hdmi.conf b/src/conf/pcm/hdmi.conf
new file mode 100644 (file)
index 0000000..aad7065
--- /dev/null
@@ -0,0 +1,83 @@
+#
+#  Hardware output from HDMI
+#
+
+pcm.!hdmi {
+       @args [ CARD DEV AES0 AES1 AES2 AES3 ]
+       @args.CARD {
+               type string
+               default {
+                       @func getenv
+                       vars [
+                               ALSA_IEC958_CARD
+                               ALSA_PCM_CARD
+                               ALSA_CARD
+                       ]
+                       default {
+                               @func refer
+                               name defaults.pcm.iec958.card
+                       }
+               }
+       }
+       @args.DEV {
+               type integer
+               default {
+                       @func igetenv
+                       vars [
+                               ALSA_IEC958_DEVICE
+                       ]
+                       default {
+                               @func refer
+                               name defaults.pcm.iec958.device
+                       }
+               }
+       }
+       @args.AES0 {
+               type integer
+               # consumer, not-copyright, emphasis-none, mode=0
+               default 0x04
+       }
+       @args.AES1 {
+               type integer
+               # original, PCM coder
+               default 0x82
+       }
+       @args.AES2 {
+               type integer
+               # source and channel
+               default 0x00
+       }
+       @args.AES3 {
+               type integer
+               # fs=48000Hz, clock accuracy=1000ppm
+               default 0x02
+       }
+       type empty
+       slave.pcm {
+               @func refer
+               name {
+                       @func concat
+                       strings [
+                               "cards."
+                               {
+                                       @func card_driver
+                                       card $CARD
+                               }
+                               ".pcm.hdmi." $DEV ":"
+                               "CARD=" $CARD ","
+                               "AES0=" $AES0 ","
+                               "AES1=" $AES1 ","
+                               "AES2=" $AES2 ","
+                               "AES3=" $AES3
+                       ]
+               }
+       }
+       hint {
+               show {
+                       @func refer
+                       name defaults.namehint.basic
+               }
+               description "HDMI Audio Output"
+               device $DEV
+       }
+}