From df87a4be3de3fe86cefa73bc435469d163b3dcce Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 7 Mar 2008 17:15:10 +0100 Subject: [PATCH] Add PCM "hdmi" Added the new PCM "hdmi" for HDA-Intel. It's still experimental. --- src/conf/alsa.conf | 1 + src/conf/cards/HDA-Intel.conf | 45 +++++++++++++++++++ src/conf/pcm/Makefile.am | 2 +- src/conf/pcm/hdmi.conf | 83 +++++++++++++++++++++++++++++++++++ 4 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 src/conf/pcm/hdmi.conf diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf index 4bf8f07e..5c881f1a 100644 --- a/src/conf/alsa.conf +++ b/src/conf/alsa.conf @@ -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 diff --git a/src/conf/cards/HDA-Intel.conf b/src/conf/cards/HDA-Intel.conf index 206ae247..bcbcb9b5 100644 --- a/src/conf/cards/HDA-Intel.conf +++ b/src/conf/cards/HDA-Intel.conf @@ -137,6 +137,51 @@ HDA-Intel.pcm.iec958.0 { hint.device 1 } + + +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 +} + HDA-Intel.pcm.modem.0 { diff --git a/src/conf/pcm/Makefile.am b/src/conf/pcm/Makefile.am index 7d9c0772..48ba45f7 100644 --- a/src/conf/pcm/Makefile.am +++ b/src/conf/pcm/Makefile.am @@ -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 index 00000000..aad7065c --- /dev/null +++ b/src/conf/pcm/hdmi.conf @@ -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 + } +} -- 2.47.1