1# 2# Hardware output from iec958 3# 4 5pcm.!iec958 { 6 @args [ CARD DEV AES0 AES1 AES2 AES3 ] 7 @args.CARD { 8 type string 9 default { 10 @func getenv 11 vars [ 12 ALSA_IEC958_CARD 13 ALSA_PCM_CARD 14 ALSA_CARD 15 ] 16 default { 17 @func refer 18 name defaults.pcm.iec958.card 19 } 20 } 21 } 22 @args.DEV { 23 type integer 24 default { 25 @func igetenv 26 vars [ 27 ALSA_IEC958_DEVICE 28 ] 29 default { 30 @func refer 31 name defaults.pcm.iec958.device 32 } 33 } 34 } 35 @args.AES0 { 36 type integer 37 # consumer, not-copyright, emphasis-none, mode=0 38 default 0x04 39 } 40 @args.AES1 { 41 type integer 42 # original, PCM coder 43 default 0x82 44 } 45 @args.AES2 { 46 type integer 47 # source and channel 48 default 0x00 49 } 50 @args.AES3 { 51 type integer 52 # fs=48000Hz, clock accuracy=1000ppm 53 default 0x02 54 } 55 type empty 56 slave.pcm { 57 @func refer 58 name { 59 @func concat 60 strings [ 61 "cards." 62 { 63 @func card_inum 64 card $CARD 65 } 66 ".pcm.iec958." $DEV ":" 67 "CARD=" $CARD "," 68 "AES0=" $AES0 "," 69 "AES1=" $AES1 "," 70 "AES2=" $AES2 "," 71 "AES3=" $AES3 72 ] 73 } 74 } 75 hint { 76 show { 77 @func refer 78 name defaults.namehint.basic 79 } 80 description "IEC958 (S/PDIF) Digital Audio Output" 81 device_output $DEV 82 } 83} 84