1#
2# dmix output
3#
4
5pcm.!dmix {
6	@args [ CARD DEV SUBDEV FORMAT RATE CHANNELS ]
7	@args.CARD {
8		type string
9		default {
10			@func refer
11			name defaults.pcm.dmix.card
12		}
13	}
14	@args.DEV {
15		type integer
16		default {
17			@func refer
18			name defaults.pcm.dmix.device
19		}
20	}
21	@args.SUBDEV {
22		type integer
23		default 0
24	}
25	@args.FORMAT {
26		type string
27		default {
28			@func refer
29			name defaults.pcm.dmix.format
30		}
31	}
32	@args.RATE {
33		type integer
34		default {
35			@func refer
36			name defaults.pcm.dmix.rate
37		}
38	}
39	@args.CHANNELS {
40		type integer
41		default {
42			@func refer
43			name defaults.pcm.dmix.channels
44		}
45	}
46	type dmix
47	ipc_key {
48		@func refer
49		name defaults.pcm.ipc_key
50	}
51	ipc_gid {
52		@func refer
53		name defaults.pcm.ipc_gid
54	}
55	ipc_perm {
56		@func refer
57		name defaults.pcm.ipc_perm
58	}
59	slave {
60		pcm {
61			type hw
62			card $CARD
63			device $DEV
64			subdevice $SUBDEV
65		}
66		format $FORMAT
67		rate $RATE
68		channels $CHANNELS
69		period_size {
70			@func refer
71			name {
72				@func concat
73				strings [
74					"defaults.dmix."
75					{
76						@func card_driver
77						card $CARD
78					}
79					".period_size"
80				]
81			}
82			default 1024
83		}
84		period_time {
85			@func refer
86			name {
87				@func concat
88				strings [
89					"defaults.dmix."
90					{
91						@func card_driver
92						card $CARD
93					}
94					".period_time"
95				]
96			}
97			default -1
98		}
99		periods {
100			@func refer
101			name {
102				@func concat
103				strings [
104					"defaults.dmix."
105					{
106						@func card_driver
107						card $CARD
108					}
109					".periods"
110				]
111			}
112			default 16
113		}
114	}
115	hint {
116		show {
117			@func refer
118			name defaults.namehint.extended
119		}
120		description "Direct sample mixing device"
121		device_output $DEV
122	}
123}
124