Linux unitednationsplay.com 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
nginx/1.20.1
Server IP : 188.130.139.92 & Your IP : 18.191.120.131
Domains :
Cant Read [ /etc/named.conf ]
User : web
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
share /
doc /
alsa-lib-devel-1.1.8 /
doxygen /
html /
Delete
Unzip
Name
Size
Permission
Date
Action
search
[ DIR ]
drwxr-xr-x
2021-11-09 08:48
_2test_2latency_8c-example.html
72.63
KB
-rw-r--r--
2019-08-08 12:00
_2test_2pcm_8c-example.html
96.91
KB
-rw-r--r--
2019-08-08 12:00
_2test_2pcm_min_8c-example.html
10.46
KB
-rw-r--r--
2019-08-08 12:00
_2test_2rawmidi_8c-example.html
24.4
KB
-rw-r--r--
2019-08-08 12:00
_2test_2timer_8c-example.html
28.51
KB
-rw-r--r--
2019-08-08 12:00
annotated.html
21.21
KB
-rw-r--r--
2019-08-08 12:00
asoundef_8h.html
110.32
KB
-rw-r--r--
2019-08-08 12:00
asoundef_8h_source.html
71.83
KB
-rw-r--r--
2019-08-08 12:00
asoundlib_8h.html
7.28
KB
-rw-r--r--
2019-08-08 12:00
asoundlib_8h_source.html
13.58
KB
-rw-r--r--
2019-08-08 12:00
async_8c.html
10.67
KB
-rw-r--r--
2019-08-08 12:00
bc_s.png
676
B
-rw-r--r--
2019-08-08 12:00
bdwn.png
147
B
-rw-r--r--
2019-08-08 12:00
bug.html
5.27
KB
-rw-r--r--
2019-08-08 12:00
cards_8c.html
9.36
KB
-rw-r--r--
2019-08-08 12:00
classes.html
12.61
KB
-rw-r--r--
2019-08-08 12:00
closed.png
132
B
-rw-r--r--
2019-08-08 12:00
conf.html
14.12
KB
-rw-r--r--
2019-08-08 12:00
conf_8c.html
93.94
KB
-rw-r--r--
2019-08-08 12:00
conf_8h.html
61.32
KB
-rw-r--r--
2019-08-08 12:00
conf_8h_source.html
74.11
KB
-rw-r--r--
2019-08-08 12:00
confarg.html
7.88
KB
-rw-r--r--
2019-08-08 12:00
conffunc.html
9.26
KB
-rw-r--r--
2019-08-08 12:00
confhooks.html
6.58
KB
-rw-r--r--
2019-08-08 12:00
confmisc_8c.html
53.07
KB
-rw-r--r--
2019-08-08 12:00
control.html
7.52
KB
-rw-r--r--
2019-08-08 12:00
control_8c.html
167.94
KB
-rw-r--r--
2019-08-08 12:00
control_8h.html
231.48
KB
-rw-r--r--
2019-08-08 12:00
control_8h_source.html
278.44
KB
-rw-r--r--
2019-08-08 12:00
control__ext_8c.html
7.89
KB
-rw-r--r--
2019-08-08 12:00
control__external_8h.html
15.86
KB
-rw-r--r--
2019-08-08 12:00
control__external_8h_source.html
54.72
KB
-rw-r--r--
2019-08-08 12:00
ctl_external_plugins.html
19.15
KB
-rw-r--r--
2019-08-08 12:00
deprecated.html
6.81
KB
-rw-r--r--
2019-08-08 12:00
dir_381a0a05232d68d0a2ebe5cd502f4d69.html
7.59
KB
-rw-r--r--
2019-08-08 12:00
dir_5f851d935025f1be023c2c62bd843fe2.html
6.55
KB
-rw-r--r--
2019-08-08 12:00
dir_68267d1309a1af8e8297ef4c3efbcdba.html
12.01
KB
-rw-r--r--
2019-08-08 12:00
dir_8c35c1873c2690b478a9950d0638d637.html
7.11
KB
-rw-r--r--
2019-08-08 12:00
dir_b73df3c68338d0823ff9d736eb268d89.html
7.77
KB
-rw-r--r--
2019-08-08 12:00
dir_b81b067251166617f9d0a8c0cfc3a4a9.html
9.51
KB
-rw-r--r--
2019-08-08 12:00
dir_d0e40b335958b6212fb6f781133eecbc.html
6.11
KB
-rw-r--r--
2019-08-08 12:00
dir_d1b0f45016cd06bf2eb252bd3f501161.html
7.6
KB
-rw-r--r--
2019-08-08 12:00
dir_d3519ec5023707b37568b471096da878.html
6.3
KB
-rw-r--r--
2019-08-08 12:00
dir_d44c64559bbebec7f509842c48db8b23.html
16.06
KB
-rw-r--r--
2019-08-08 12:00
dir_e8b3d2be6db305a5d41d291dd9fd6e9c.html
18.74
KB
-rw-r--r--
2019-08-08 12:00
dlmisc_8c.html
8.68
KB
-rw-r--r--
2019-08-08 12:00
doxygen.css
23.29
KB
-rw-r--r--
2019-08-08 12:00
doxygen.png
3.69
KB
-rw-r--r--
2019-08-08 12:00
dynsections.js
2.91
KB
-rw-r--r--
2019-08-08 12:00
error_8c.html
11.62
KB
-rw-r--r--
2019-08-08 12:00
error_8h.html
15.14
KB
-rw-r--r--
2019-08-08 12:00
error_8h_source.html
17.35
KB
-rw-r--r--
2019-08-08 12:00
examples.html
5.44
KB
-rw-r--r--
2019-08-08 12:00
files.html
41.53
KB
-rw-r--r--
2019-08-08 12:00
ftv2blank.png
86
B
-rw-r--r--
2019-08-08 12:00
ftv2cl.png
453
B
-rw-r--r--
2019-08-08 12:00
ftv2doc.png
746
B
-rw-r--r--
2019-08-08 12:00
ftv2folderclosed.png
616
B
-rw-r--r--
2019-08-08 12:00
ftv2folderopen.png
597
B
-rw-r--r--
2019-08-08 12:00
ftv2lastnode.png
86
B
-rw-r--r--
2019-08-08 12:00
ftv2link.png
746
B
-rw-r--r--
2019-08-08 12:00
ftv2mlastnode.png
246
B
-rw-r--r--
2019-08-08 12:00
ftv2mnode.png
246
B
-rw-r--r--
2019-08-08 12:00
ftv2mo.png
403
B
-rw-r--r--
2019-08-08 12:00
ftv2node.png
86
B
-rw-r--r--
2019-08-08 12:00
ftv2ns.png
388
B
-rw-r--r--
2019-08-08 12:00
ftv2plastnode.png
229
B
-rw-r--r--
2019-08-08 12:00
ftv2pnode.png
229
B
-rw-r--r--
2019-08-08 12:00
ftv2splitbar.png
314
B
-rw-r--r--
2019-08-08 12:00
ftv2vertline.png
86
B
-rw-r--r--
2019-08-08 12:00
functions.html
7.92
KB
-rw-r--r--
2019-08-08 12:00
functions_0x62.html
8.16
KB
-rw-r--r--
2019-08-08 12:00
functions_0x63.html
10.88
KB
-rw-r--r--
2019-08-08 12:00
functions_0x64.html
9.97
KB
-rw-r--r--
2019-08-08 12:00
functions_0x65.html
8.63
KB
-rw-r--r--
2019-08-08 12:00
functions_0x66.html
8.8
KB
-rw-r--r--
2019-08-08 12:00
functions_0x67.html
8.44
KB
-rw-r--r--
2019-08-08 12:00
functions_0x68.html
8.59
KB
-rw-r--r--
2019-08-08 12:00
functions_0x69.html
8.96
KB
-rw-r--r--
2019-08-08 12:00
functions_0x6c.html
7.69
KB
-rw-r--r--
2019-08-08 12:00
functions_0x6d.html
8.97
KB
-rw-r--r--
2019-08-08 12:00
functions_0x6e.html
9.46
KB
-rw-r--r--
2019-08-08 12:00
functions_0x6f.html
7.45
KB
-rw-r--r--
2019-08-08 12:00
functions_0x70.html
12.97
KB
-rw-r--r--
2019-08-08 12:00
functions_0x71.html
7.81
KB
-rw-r--r--
2019-08-08 12:00
functions_0x72.html
9.93
KB
-rw-r--r--
2019-08-08 12:00
functions_0x73.html
11.55
KB
-rw-r--r--
2019-08-08 12:00
functions_0x74.html
9.51
KB
-rw-r--r--
2019-08-08 12:00
functions_0x75.html
7.57
KB
-rw-r--r--
2019-08-08 12:00
functions_0x76.html
8.66
KB
-rw-r--r--
2019-08-08 12:00
functions_0x77.html
8.02
KB
-rw-r--r--
2019-08-08 12:00
functions_vars.html
7.9
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x62.html
8.14
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x63.html
10.86
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x64.html
9.95
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x65.html
8.61
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x66.html
8.77
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x67.html
8.42
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x68.html
8.57
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x69.html
8.94
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x6c.html
7.67
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x6d.html
8.95
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x6e.html
9.44
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x6f.html
7.42
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x70.html
12.94
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x71.html
7.78
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x72.html
9.91
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x73.html
11.53
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x74.html
9.49
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x75.html
7.55
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x76.html
8.64
KB
-rw-r--r--
2019-08-08 12:00
functions_vars_0x77.html
8
KB
-rw-r--r--
2019-08-08 12:00
global_8h.html
21.49
KB
-rw-r--r--
2019-08-08 12:00
global_8h_source.html
31.54
KB
-rw-r--r--
2019-08-08 12:00
globals.html
10.13
KB
-rw-r--r--
2019-08-08 12:00
globals_0x61.html
6.53
KB
-rw-r--r--
2019-08-08 12:00
globals_0x69.html
27.15
KB
-rw-r--r--
2019-08-08 12:00
globals_0x6c.html
6.52
KB
-rw-r--r--
2019-08-08 12:00
globals_0x6d.html
19.28
KB
-rw-r--r--
2019-08-08 12:00
globals_0x70.html
6.52
KB
-rw-r--r--
2019-08-08 12:00
globals_0x73.html
399.6
KB
-rw-r--r--
2019-08-08 12:00
globals_defs.html
6.74
KB
-rw-r--r--
2019-08-08 12:00
globals_defs_0x61.html
6.28
KB
-rw-r--r--
2019-08-08 12:00
globals_defs_0x69.html
26.9
KB
-rw-r--r--
2019-08-08 12:00
globals_defs_0x6d.html
19.03
KB
-rw-r--r--
2019-08-08 12:00
globals_defs_0x73.html
41.41
KB
-rw-r--r--
2019-08-08 12:00
globals_enum.html
10.91
KB
-rw-r--r--
2019-08-08 12:00
globals_eval.html
56.84
KB
-rw-r--r--
2019-08-08 12:00
globals_func.html
8.99
KB
-rw-r--r--
2019-08-08 12:00
globals_func_0x73.html
296.89
KB
-rw-r--r--
2019-08-08 12:00
globals_type.html
16.29
KB
-rw-r--r--
2019-08-08 12:00
globals_vars.html
6.58
KB
-rw-r--r--
2019-08-08 12:00
group___config.html
167.8
KB
-rw-r--r--
2019-08-08 12:00
group___control.html
451.85
KB
-rw-r--r--
2019-08-08 12:00
group___ctl_plugin___s_d_k.html
27.25
KB
-rw-r--r--
2019-08-08 12:00
group___digital___audio___interface.html
121.36
KB
-rw-r--r--
2019-08-08 12:00
group___error.html
17.96
KB
-rw-r--r--
2019-08-08 12:00
group___global.html
35.46
KB
-rw-r--r--
2019-08-08 12:00
group___h_control.html
87.82
KB
-rw-r--r--
2019-08-08 12:00
group___hw_dep.html
103.83
KB
-rw-r--r--
2019-08-08 12:00
group___input.html
25.86
KB
-rw-r--r--
2019-08-08 12:00
group___m_i_d_i___commands.html
19.43
KB
-rw-r--r--
2019-08-08 12:00
group___m_i_d_i___controllers.html
59.49
KB
-rw-r--r--
2019-08-08 12:00
group___m_i_d_i___event.html
40.27
KB
-rw-r--r--
2019-08-08 12:00
group___m_i_d_i___interface.html
7.65
KB
-rw-r--r--
2019-08-08 12:00
group___mixer.html
111.34
KB
-rw-r--r--
2019-08-08 12:00
group___output.html
29.64
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m.html
239.96
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___access.html
25.68
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___deprecated.html
57.51
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___description.html
21.1
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___direct.html
30.64
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___dump.html
19.83
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___ext_plug.html
35.42
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___format.html
25.63
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___h_w___params.html
334.6
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___helpers.html
59.92
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___hook.html
19.18
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___i_o_plug.html
42.67
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___info.html
39.45
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___s_w___params.html
57.45
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___scope.html
36.51
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___simple.html
24.78
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___status.html
41.88
KB
-rw-r--r--
2019-08-08 12:00
group___p_c_m___sub_format.html
25.91
KB
-rw-r--r--
2019-08-08 12:00
group___plugin___s_d_k.html
16.2
KB
-rw-r--r--
2019-08-08 12:00
group___raw_midi.html
116.92
KB
-rw-r--r--
2019-08-08 12:00
group___s_control.html
13.25
KB
-rw-r--r--
2019-08-08 12:00
group___seq_client.html
103.44
KB
-rw-r--r--
2019-08-08 12:00
group___seq_ev_type.html
42.98
KB
-rw-r--r--
2019-08-08 12:00
group___seq_event.html
83.54
KB
-rw-r--r--
2019-08-08 12:00
group___seq_events.html
50.17
KB
-rw-r--r--
2019-08-08 12:00
group___seq_middle.html
138.03
KB
-rw-r--r--
2019-08-08 12:00
group___seq_misc.html
7.79
KB
-rw-r--r--
2019-08-08 12:00
group___seq_port.html
112.46
KB
-rw-r--r--
2019-08-08 12:00
group___seq_queue.html
136.55
KB
-rw-r--r--
2019-08-08 12:00
group___seq_subscribe.html
96.64
KB
-rw-r--r--
2019-08-08 12:00
group___sequencer.html
76.55
KB
-rw-r--r--
2019-08-08 12:00
group___simple_mixer.html
149.55
KB
-rw-r--r--
2019-08-08 12:00
group___timer.html
190.4
KB
-rw-r--r--
2019-08-08 12:00
group__topology.html
61.51
KB
-rw-r--r--
2019-08-08 12:00
group__ucm.html
57.08
KB
-rw-r--r--
2019-08-08 12:00
hcontrol.html
5.36
KB
-rw-r--r--
2019-08-08 12:00
hcontrol_8c.html
41.06
KB
-rw-r--r--
2019-08-08 12:00
hwdep_8c.html
44.41
KB
-rw-r--r--
2019-08-08 12:00
hwdep_8h.html
49.87
KB
-rw-r--r--
2019-08-08 12:00
hwdep_8h_source.html
70.6
KB
-rw-r--r--
2019-08-08 12:00
index.html
9.13
KB
-rw-r--r--
2019-08-08 12:00
input_8c.html
12.28
KB
-rw-r--r--
2019-08-08 12:00
input_8h.html
14.5
KB
-rw-r--r--
2019-08-08 12:00
input_8h_source.html
19.59
KB
-rw-r--r--
2019-08-08 12:00
jquery.js
102.24
KB
-rw-r--r--
2019-08-08 12:00
mixer.html
5.22
KB
-rw-r--r--
2019-08-08 12:00
mixer_8c.html
46.29
KB
-rw-r--r--
2019-08-08 12:00
mixer_8h.html
111.48
KB
-rw-r--r--
2019-08-08 12:00
mixer_8h_source.html
137.52
KB
-rw-r--r--
2019-08-08 12:00
mixer__simple_8h_source.html
14.49
KB
-rw-r--r--
2019-08-08 12:00
modules.html
18.17
KB
-rw-r--r--
2019-08-08 12:00
namehint_8c.html
8.18
KB
-rw-r--r--
2019-08-08 12:00
names_8c.html
7.6
KB
-rw-r--r--
2019-08-08 12:00
nav_f.png
153
B
-rw-r--r--
2019-08-08 12:00
nav_g.png
108
B
-rw-r--r--
2019-08-08 12:00
nav_h.png
98
B
-rw-r--r--
2019-08-08 12:00
open.png
123
B
-rw-r--r--
2019-08-08 12:00
output_8c.html
13.92
KB
-rw-r--r--
2019-08-08 12:00
output_8h.html
16.15
KB
-rw-r--r--
2019-08-08 12:00
output_8h_source.html
21.34
KB
-rw-r--r--
2019-08-08 12:00
pages.html
8.4
KB
-rw-r--r--
2019-08-08 12:00
pcm.html
47.73
KB
-rw-r--r--
2019-08-08 12:00
pcm_2pcm_8c.html
286.51
KB
-rw-r--r--
2019-08-08 12:00
pcm_8h.html
373.82
KB
-rw-r--r--
2019-08-08 12:00
pcm_8h_source.html
535.79
KB
-rw-r--r--
2019-08-08 12:00
pcm__adpcm_8c.html
13.99
KB
-rw-r--r--
2019-08-08 12:00
pcm__alaw_8c.html
13.46
KB
-rw-r--r--
2019-08-08 12:00
pcm__asym_8c.html
10.01
KB
-rw-r--r--
2019-08-08 12:00
pcm__copy_8c.html
12.94
KB
-rw-r--r--
2019-08-08 12:00
pcm__dmix_8c.html
15.19
KB
-rw-r--r--
2019-08-08 12:00
pcm__dshare_8c.html
14.16
KB
-rw-r--r--
2019-08-08 12:00
pcm__dsnoop_8c.html
14.17
KB
-rw-r--r--
2019-08-08 12:00
pcm__empty_8c.html
10
KB
-rw-r--r--
2019-08-08 12:00
pcm__external_8h.html
8.9
KB
-rw-r--r--
2019-08-08 12:00
pcm__external_8h_source.html
14.69
KB
-rw-r--r--
2019-08-08 12:00
pcm__extplug_8c.html
13.04
KB
-rw-r--r--
2019-08-08 12:00
pcm__extplug_8h.html
17.62
KB
-rw-r--r--
2019-08-08 12:00
pcm__extplug_8h_source.html
48.01
KB
-rw-r--r--
2019-08-08 12:00
pcm__file_8c.html
15.48
KB
-rw-r--r--
2019-08-08 12:00
pcm__hooks_8c.html
19.42
KB
-rw-r--r--
2019-08-08 12:00
pcm__hw_8c.html
18.07
KB
-rw-r--r--
2019-08-08 12:00
pcm__iec958_8c.html
14.06
KB
-rw-r--r--
2019-08-08 12:00
pcm__ioplug_8c.html
15.3
KB
-rw-r--r--
2019-08-08 12:00
pcm__ioplug_8h.html
21.94
KB
-rw-r--r--
2019-08-08 12:00
pcm__ioplug_8h_source.html
66.92
KB
-rw-r--r--
2019-08-08 12:00
pcm__ladspa_8c.html
14.79
KB
-rw-r--r--
2019-08-08 12:00
pcm__lfloat_8c.html
13.42
KB
-rw-r--r--
2019-08-08 12:00
pcm__linear_8c.html
13.49
KB
-rw-r--r--
2019-08-08 12:00
pcm__meter_8c.html
22.2
KB
-rw-r--r--
2019-08-08 12:00
pcm__mmap__emul_8c.html
9.84
KB
-rw-r--r--
2019-08-08 12:00
pcm__mulaw_8c.html
13.48
KB
-rw-r--r--
2019-08-08 12:00
pcm__multi_8c.html
14.84
KB
-rw-r--r--
2019-08-08 12:00
pcm__null_8c.html
12.88
KB
-rw-r--r--
2019-08-08 12:00
pcm__plugin_8c.html
6.44
KB
-rw-r--r--
2019-08-08 12:00
pcm__rate_8c.html
16.13
KB
-rw-r--r--
2019-08-08 12:00
pcm__route_8c.html
21.28
KB
-rw-r--r--
2019-08-08 12:00
pcm__share_8c.html
15.31
KB
-rw-r--r--
2019-08-08 12:00
pcm__shm_8c.html
13.27
KB
-rw-r--r--
2019-08-08 12:00
pcm__simple_8c.html
10.12
KB
-rw-r--r--
2019-08-08 12:00
pcm__softvol_8c.html
16.08
KB
-rw-r--r--
2019-08-08 12:00
pcm_external_plugins.html
24.32
KB
-rw-r--r--
2019-08-08 12:00
pcm_plugins.html
66.5
KB
-rw-r--r--
2019-08-08 12:00
rawmidi.html
11.77
KB
-rw-r--r--
2019-08-08 12:00
rawmidi_8c.html
46.77
KB
-rw-r--r--
2019-08-08 12:00
rawmidi_8h.html
54.98
KB
-rw-r--r--
2019-08-08 12:00
rawmidi_8h_source.html
65.34
KB
-rw-r--r--
2019-08-08 12:00
seq.html
57.26
KB
-rw-r--r--
2019-08-08 12:00
seq_8c.html
197.23
KB
-rw-r--r--
2019-08-08 12:00
seq_8h.html
251.24
KB
-rw-r--r--
2019-08-08 12:00
seq_8h_source.html
272.74
KB
-rw-r--r--
2019-08-08 12:00
seq__event_8c.html
6.64
KB
-rw-r--r--
2019-08-08 12:00
seq__event_8h.html
29.19
KB
-rw-r--r--
2019-08-08 12:00
seq__event_8h_source.html
96.96
KB
-rw-r--r--
2019-08-08 12:00
seq__midi__event_8c.html
14.24
KB
-rw-r--r--
2019-08-08 12:00
seq__midi__event_8h.html
15.24
KB
-rw-r--r--
2019-08-08 12:00
seq__midi__event_8h_source.html
19.92
KB
-rw-r--r--
2019-08-08 12:00
seqmid_8h.html
42.31
KB
-rw-r--r--
2019-08-08 12:00
seqmid_8h_source.html
53.43
KB
-rw-r--r--
2019-08-08 12:00
setup_8c.html
9.85
KB
-rw-r--r--
2019-08-08 12:00
simple_8c.html
60.74
KB
-rw-r--r--
2019-08-08 12:00
simple__abst_8c.html
16.27
KB
-rw-r--r--
2019-08-08 12:00
simple__none_8c.html
9.28
KB
-rw-r--r--
2019-08-08 12:00
structctl__access__elem.html
6.41
KB
-rw-r--r--
2019-08-08 12:00
structsnd__aes__iec958__t.html
8.83
KB
-rw-r--r--
2019-08-08 12:00
structsnd__ctl__ext.html
18.52
KB
-rw-r--r--
2019-08-08 12:00
structsnd__ctl__ext__callback.html
35.7
KB
-rw-r--r--
2019-08-08 12:00
structsnd__devname.html
8.06
KB
-rw-r--r--
2019-08-08 12:00
structsnd__mixer__selem__regopt.html
10.25
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__audio__tstamp__config__t.html
6.58
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__audio__tstamp__report__t.html
7.29
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__channel__area__t.html
8.58
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__chmap__query__t.html
7.82
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__chmap__t.html
7.39
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__extplug.html
17.41
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__extplug__callback.html
16.62
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__ioplug.html
22.55
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__ioplug__callback.html
27.5
KB
-rw-r--r--
2019-08-08 12:00
structsnd__pcm__scope__ops__t.html
14.9
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__addr__t.html
7.39
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__connect__t.html
7.66
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__ev__ctrl__t.html
8.8
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__ev__ext.html
7.41
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__ev__note__t.html
9.79
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__ev__queue__control__t.html
12.5
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__ev__raw32__t.html
6.74
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__ev__raw8__t.html
6.74
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__event__t.html
19.44
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__queue__skew__t.html
7.42
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__real__time__t.html
7.43
KB
-rw-r--r--
2019-08-08 12:00
structsnd__seq__result__t.html
7.37
KB
-rw-r--r--
2019-08-08 12:00
structsnd__timer__read__t.html
7.76
KB
-rw-r--r--
2019-08-08 12:00
structsnd__timer__tread__t.html
8.42
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__bytes__template.html
11.35
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__channel__elem.html
8.65
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__channel__map__template.html
7.96
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__channel__template.html
5.92
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__ctl__template.html
9.91
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__dai__template.html
12.13
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__enum__template.html
11.45
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__graph__elem.html
8.26
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__graph__template.html
7.73
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__hw__config__template.html
13.47
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__io__ops__template.html
8.23
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__link__template.html
12.93
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__mixer__template.html
11.44
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__obj__template.html
5.87
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__obj__template__t.html
15.83
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__pcm__template.html
15.76
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__pdata__template.html
7.56
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__stream__caps__template.html
16.33
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__stream__template.html
10.33
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__tlv__dbscale__template.html
9.14
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__tlv__template.html
6.84
KB
-rw-r--r--
2019-08-08 12:00
structsnd__tplg__widget__template.html
16.21
KB
-rw-r--r--
2019-08-08 12:00
sync_off.png
853
B
-rw-r--r--
2019-08-08 12:00
sync_on.png
845
B
-rw-r--r--
2019-08-08 12:00
tab_a.png
142
B
-rw-r--r--
2019-08-08 12:00
tab_b.png
169
B
-rw-r--r--
2019-08-08 12:00
tab_h.png
177
B
-rw-r--r--
2019-08-08 12:00
tab_s.png
184
B
-rw-r--r--
2019-08-08 12:00
tabs.css
1.14
KB
-rw-r--r--
2019-08-08 12:00
timer.html
6.57
KB
-rw-r--r--
2019-08-08 12:00
timer_8c.html
48.32
KB
-rw-r--r--
2019-08-08 12:00
timer_8h.html
85.53
KB
-rw-r--r--
2019-08-08 12:00
timer_8h_source.html
108.65
KB
-rw-r--r--
2019-08-08 12:00
timer__local_8h_source.html
27.74
KB
-rw-r--r--
2019-08-08 12:00
timer__query_8c.html
31.83
KB
-rw-r--r--
2019-08-08 12:00
tlv_8c.html
11.68
KB
-rw-r--r--
2019-08-08 12:00
topology_8h_source.html
138.52
KB
-rw-r--r--
2019-08-08 12:00
unionsnd__pcm__sync__id__t.html
8.07
KB
-rw-r--r--
2019-08-08 12:00
unionsnd__seq__timestamp__t.html
7.61
KB
-rw-r--r--
2019-08-08 12:00
use-case_8h.html
26.77
KB
-rw-r--r--
2019-08-08 12:00
use-case_8h_source.html
36.97
KB
-rw-r--r--
2019-08-08 12:00
version_8h_source.html
7.33
KB
-rw-r--r--
2019-08-08 12:00
wave1.gif
1.67
KB
-rw-r--r--
2019-08-08 12:00
wave2.gif
1020
B
-rw-r--r--
2019-08-08 12:00
Save
Rename
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>ALSA project - the C library reference: Configuration Interface</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">ALSA project - the C library reference </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> </div><!-- top --> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Pages</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> | <a href="#func-members">Functions</a> | <a href="#var-members">Variables</a> </div> <div class="headertitle"> <div class="title">Configuration Interface</div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structsnd__devname.html">snd_devname_t</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:ga96fd234b2ce9c03a9e82f4e854cc65ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga96fd234b2ce9c03a9e82f4e854cc65ce"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga96fd234b2ce9c03a9e82f4e854cc65ce">SND_CONFIG_DLSYM_VERSION_EVALUATE</a>   _dlsym_config_evaluate_001</td></tr> <tr class="memdesc:ga96fd234b2ce9c03a9e82f4e854cc65ce"><td class="mdescLeft"> </td><td class="mdescRight"><code>dlsym</code> version for the config evaluate callback. <br/></td></tr> <tr class="separator:ga96fd234b2ce9c03a9e82f4e854cc65ce"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga948b35b3df554e2e06ba5bb9f5452704"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga948b35b3df554e2e06ba5bb9f5452704"></a> #define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga948b35b3df554e2e06ba5bb9f5452704">SND_CONFIG_DLSYM_VERSION_HOOK</a>   _dlsym_config_hook_001</td></tr> <tr class="memdesc:ga948b35b3df554e2e06ba5bb9f5452704"><td class="mdescLeft"> </td><td class="mdescRight"><code>dlsym</code> version for the config hook callback. <br/></td></tr> <tr class="separator:ga948b35b3df554e2e06ba5bb9f5452704"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac3f21333e1f9b602cad9b06cb418fa80"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac3f21333e1f9b602cad9b06cb418fa80">snd_config_for_each</a>(pos, next, node)   for (pos = <a class="el" href="group___config.html#gac8965466674c10b9a119d591ed484cef">snd_config_iterator_first</a>(node), next = <a class="el" href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb">snd_config_iterator_next</a>(pos); pos != <a class="el" href="group___config.html#gac08a30bc630481f69feb2170fed4afda">snd_config_iterator_end</a>(node); pos = next, next = <a class="el" href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb">snd_config_iterator_next</a>(pos))</td></tr> <tr class="memdesc:gac3f21333e1f9b602cad9b06cb418fa80"><td class="mdescLeft"> </td><td class="mdescRight">Helper macro to iterate over the children of a compound node. <a href="#gac3f21333e1f9b602cad9b06cb418fa80">More...</a><br/></td></tr> <tr class="separator:gac3f21333e1f9b602cad9b06cb418fa80"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:ga1c20905af775ae77d04d1a5696f67985"><td class="memItemLeft" align="right" valign="top">typedef struct _snd_config </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a></td></tr> <tr class="memdesc:ga1c20905af775ae77d04d1a5696f67985"><td class="mdescLeft"> </td><td class="mdescRight">Internal structure for a configuration node object. <a href="#ga1c20905af775ae77d04d1a5696f67985">More...</a><br/></td></tr> <tr class="separator:ga1c20905af775ae77d04d1a5696f67985"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6c621ab8875a222e1fcb56e9feed6ec6"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/> _snd_config_iterator * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a></td></tr> <tr class="memdesc:ga6c621ab8875a222e1fcb56e9feed6ec6"><td class="mdescLeft"> </td><td class="mdescRight">Type for a configuration compound iterator. <a href="#ga6c621ab8875a222e1fcb56e9feed6ec6">More...</a><br/></td></tr> <tr class="separator:ga6c621ab8875a222e1fcb56e9feed6ec6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab10b229189a94e3fcbac7f6ca5794cc0"><td class="memItemLeft" align="right" valign="top">typedef struct _snd_config_update </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a></td></tr> <tr class="memdesc:gab10b229189a94e3fcbac7f6ca5794cc0"><td class="mdescLeft"> </td><td class="mdescRight">Internal structure for a configuration private update object. <a href="#gab10b229189a94e3fcbac7f6ca5794cc0">More...</a><br/></td></tr> <tr class="separator:gab10b229189a94e3fcbac7f6ca5794cc0"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a> Enumerations</h2></td></tr> <tr class="memitem:gaa41083e55d19c7755c5d624030e06887"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> { <br/>   <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887aaa9d6e02cd0eb42db96122c925c023e7">SND_CONFIG_TYPE_INTEGER</a>, <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a710f962ebb93e3824ddee2d833f735a2">SND_CONFIG_TYPE_INTEGER64</a>, <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a0a938daae4006e204150082ab9c73508">SND_CONFIG_TYPE_REAL</a>, <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a99eed49f50d4f62a7fc0c95301918f49">SND_CONFIG_TYPE_STRING</a>, <br/>   <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887ab0b5d34e2f16e81d4eb5f933c30158fe">SND_CONFIG_TYPE_POINTER</a>, <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a82b5c1a9dbadaa4e36815fc1f01fc2f7">SND_CONFIG_TYPE_COMPOUND</a> = 1024 <br/> }</td></tr> <tr class="memdesc:gaa41083e55d19c7755c5d624030e06887"><td class="mdescLeft"> </td><td class="mdescRight">Configuration node type. <a href="group___config.html#gaa41083e55d19c7755c5d624030e06887">More...</a><br/></td></tr> <tr class="separator:gaa41083e55d19c7755c5d624030e06887"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga122e8b1d09be7b060eabe59cd1fb2772"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga122e8b1d09be7b060eabe59cd1fb2772"></a> const char * </td><td class="memItemRight" valign="bottom"><b>snd_config_topdir</b> (void)</td></tr> <tr class="separator:ga122e8b1d09be7b060eabe59cd1fb2772"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf563d57ea9d576a94578368a3d2382c3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf563d57ea9d576a94578368a3d2382c3">snd_config_top</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config)</td></tr> <tr class="memdesc:gaf563d57ea9d576a94578368a3d2382c3"><td class="mdescLeft"> </td><td class="mdescRight">Creates a top level configuration node. <a href="#gaf563d57ea9d576a94578368a3d2382c3">More...</a><br/></td></tr> <tr class="separator:gaf563d57ea9d576a94578368a3d2382c3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga51f79d1f24a519e126415c72210525b0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga51f79d1f24a519e126415c72210525b0">snd_config_load</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> *in)</td></tr> <tr class="memdesc:ga51f79d1f24a519e126415c72210525b0"><td class="mdescLeft"> </td><td class="mdescRight">Loads a configuration tree. <a href="#ga51f79d1f24a519e126415c72210525b0">More...</a><br/></td></tr> <tr class="separator:ga51f79d1f24a519e126415c72210525b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga27334922bab8391aa2ef1813f48f4d70"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga27334922bab8391aa2ef1813f48f4d70">snd_config_load_override</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> *in)</td></tr> <tr class="memdesc:ga27334922bab8391aa2ef1813f48f4d70"><td class="mdescLeft"> </td><td class="mdescRight">Loads a configuration tree and overrides existing configuration nodes. <a href="#ga27334922bab8391aa2ef1813f48f4d70">More...</a><br/></td></tr> <tr class="separator:ga27334922bab8391aa2ef1813f48f4d70"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafac08a29a1e04b03a22028a8c70f78bd"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafac08a29a1e04b03a22028a8c70f78bd">snd_config_save</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___output.html#ga49729cc6454539495c1f5b6e95cd474a">snd_output_t</a> *out)</td></tr> <tr class="memdesc:gafac08a29a1e04b03a22028a8c70f78bd"><td class="mdescLeft"> </td><td class="mdescRight">Dumps the contents of a configuration node or tree. <a href="#gafac08a29a1e04b03a22028a8c70f78bd">More...</a><br/></td></tr> <tr class="separator:gafac08a29a1e04b03a22028a8c70f78bd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga41a3d2202cfb9016e33aa85ea70a4c9c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c">snd_config_update</a> (void)</td></tr> <tr class="memdesc:ga41a3d2202cfb9016e33aa85ea70a4c9c"><td class="mdescLeft"> </td><td class="mdescRight">Updates <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> by rereading the global configuration files (if needed). <a href="#ga41a3d2202cfb9016e33aa85ea70a4c9c">More...</a><br/></td></tr> <tr class="separator:ga41a3d2202cfb9016e33aa85ea70a4c9c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga06e80976c3c00fdc786f9b213e5c40f7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga06e80976c3c00fdc786f9b213e5c40f7">snd_config_update_r</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **top, <a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> **update, const char *path)</td></tr> <tr class="memdesc:ga06e80976c3c00fdc786f9b213e5c40f7"><td class="mdescLeft"> </td><td class="mdescRight">Updates a configuration tree by rereading the configuration files (if needed). <a href="#ga06e80976c3c00fdc786f9b213e5c40f7">More...</a><br/></td></tr> <tr class="separator:ga06e80976c3c00fdc786f9b213e5c40f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8f781ac635a0233fb2f58766a83d65cd"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga8f781ac635a0233fb2f58766a83d65cd">snd_config_update_free</a> (<a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> *update)</td></tr> <tr class="memdesc:ga8f781ac635a0233fb2f58766a83d65cd"><td class="mdescLeft"> </td><td class="mdescRight">Frees a private update structure. <a href="#ga8f781ac635a0233fb2f58766a83d65cd">More...</a><br/></td></tr> <tr class="separator:ga8f781ac635a0233fb2f58766a83d65cd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga51dbc0ff1d9b34d753706d09d768116b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga51dbc0ff1d9b34d753706d09d768116b">snd_config_update_free_global</a> (void)</td></tr> <tr class="memdesc:ga51dbc0ff1d9b34d753706d09d768116b"><td class="mdescLeft"> </td><td class="mdescRight">Frees the global configuration tree in <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a>. <a href="#ga51dbc0ff1d9b34d753706d09d768116b">More...</a><br/></td></tr> <tr class="separator:ga51dbc0ff1d9b34d753706d09d768116b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga568fcf6f45808319725ac066714b25a8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga568fcf6f45808319725ac066714b25a8">snd_config_update_ref</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **top)</td></tr> <tr class="memdesc:ga568fcf6f45808319725ac066714b25a8"><td class="mdescLeft"> </td><td class="mdescRight">Updates <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> and takes its reference. <a href="#ga568fcf6f45808319725ac066714b25a8">More...</a><br/></td></tr> <tr class="separator:ga568fcf6f45808319725ac066714b25a8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae8baa15082818d721607932bb99f318d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gae8baa15082818d721607932bb99f318d">snd_config_ref</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *top)</td></tr> <tr class="memdesc:gae8baa15082818d721607932bb99f318d"><td class="mdescLeft"> </td><td class="mdescRight">Take the reference of the config tree. <a href="#gae8baa15082818d721607932bb99f318d">More...</a><br/></td></tr> <tr class="separator:gae8baa15082818d721607932bb99f318d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac87538403cb6f8125468a1af56f42e33"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac87538403cb6f8125468a1af56f42e33">snd_config_unref</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *top)</td></tr> <tr class="memdesc:gac87538403cb6f8125468a1af56f42e33"><td class="mdescLeft"> </td><td class="mdescRight">Unreference the config tree. <a href="#gac87538403cb6f8125468a1af56f42e33">More...</a><br/></td></tr> <tr class="separator:gac87538403cb6f8125468a1af56f42e33"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabafb8cac2181c4c1e34b99f54421d1c6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6">snd_config_search</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr class="memdesc:gabafb8cac2181c4c1e34b99f54421d1c6"><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree. <a href="#gabafb8cac2181c4c1e34b99f54421d1c6">More...</a><br/></td></tr> <tr class="separator:gabafb8cac2181c4c1e34b99f54421d1c6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7b2f5723e44a1b69f2a8555d469803d1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1">snd_config_searchv</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result,...)</td></tr> <tr class="memdesc:ga7b2f5723e44a1b69f2a8555d469803d1"><td class="mdescLeft"> </td><td class="mdescRight">Searches for a node in a configuration tree. <a href="#ga7b2f5723e44a1b69f2a8555d469803d1">More...</a><br/></td></tr> <tr class="separator:ga7b2f5723e44a1b69f2a8555d469803d1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad7c23084ee4052ad33d77db6278db46f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gad7c23084ee4052ad33d77db6278db46f">snd_config_search_definition</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *base, const char *key, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr class="memdesc:gad7c23084ee4052ad33d77db6278db46f"><td class="mdescLeft"> </td><td class="mdescRight">Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments. <a href="#gad7c23084ee4052ad33d77db6278db46f">More...</a><br/></td></tr> <tr class="separator:gad7c23084ee4052ad33d77db6278db46f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7759f41c3757ce72ee9bd118976071c2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga7759f41c3757ce72ee9bd118976071c2">snd_config_expand</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, const char *args, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr class="memdesc:ga7759f41c3757ce72ee9bd118976071c2"><td class="mdescLeft"> </td><td class="mdescRight">Expands a configuration node, applying arguments and functions. <a href="#ga7759f41c3757ce72ee9bd118976071c2">More...</a><br/></td></tr> <tr class="separator:ga7759f41c3757ce72ee9bd118976071c2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1a51645a07e204d4e814d890452da558"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga1a51645a07e204d4e814d890452da558">snd_config_evaluate</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *root, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *private_data, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **result)</td></tr> <tr class="memdesc:ga1a51645a07e204d4e814d890452da558"><td class="mdescLeft"> </td><td class="mdescRight">Evaluates a configuration node at runtime. <a href="#ga1a51645a07e204d4e814d890452da558">More...</a><br/></td></tr> <tr class="separator:ga1a51645a07e204d4e814d890452da558"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf62dd825828c05f1d63a62eee7046080"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf62dd825828c05f1d63a62eee7046080">snd_config_add</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *leaf)</td></tr> <tr class="memdesc:gaf62dd825828c05f1d63a62eee7046080"><td class="mdescLeft"> </td><td class="mdescRight">Adds a child to a compound configuration node. <a href="#gaf62dd825828c05f1d63a62eee7046080">More...</a><br/></td></tr> <tr class="separator:gaf62dd825828c05f1d63a62eee7046080"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2a006b942faa3335a958a7df7bcea17e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2a006b942faa3335a958a7df7bcea17e">snd_config_delete</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr class="memdesc:ga2a006b942faa3335a958a7df7bcea17e"><td class="mdescLeft"> </td><td class="mdescRight">Frees a configuration node. <a href="#ga2a006b942faa3335a958a7df7bcea17e">More...</a><br/></td></tr> <tr class="separator:ga2a006b942faa3335a958a7df7bcea17e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaec120883e56ecb510e064151e0b11d51"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaec120883e56ecb510e064151e0b11d51">snd_config_delete_compound_members</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr class="memdesc:gaec120883e56ecb510e064151e0b11d51"><td class="mdescLeft"> </td><td class="mdescRight">Deletes the children of a node. <a href="#gaec120883e56ecb510e064151e0b11d51">More...</a><br/></td></tr> <tr class="separator:gaec120883e56ecb510e064151e0b11d51"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga30f30bd27d13fbb3527270b3fc9e1676"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga30f30bd27d13fbb3527270b3fc9e1676">snd_config_copy</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **dst, <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *src)</td></tr> <tr class="memdesc:ga30f30bd27d13fbb3527270b3fc9e1676"><td class="mdescLeft"> </td><td class="mdescRight">Creates a copy of a configuration node. <a href="#ga30f30bd27d13fbb3527270b3fc9e1676">More...</a><br/></td></tr> <tr class="separator:ga30f30bd27d13fbb3527270b3fc9e1676"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac570ecbaba611ccc12bc235a1f4d0181"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac570ecbaba611ccc12bc235a1f4d0181">snd_config_make</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, <a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> type)</td></tr> <tr class="memdesc:gac570ecbaba611ccc12bc235a1f4d0181"><td class="mdescLeft"> </td><td class="mdescRight">Creates a configuration node. <a href="#gac570ecbaba611ccc12bc235a1f4d0181">More...</a><br/></td></tr> <tr class="separator:gac570ecbaba611ccc12bc235a1f4d0181"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga838fac581e115574acc3711cad9f5877"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga838fac581e115574acc3711cad9f5877">snd_config_make_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key)</td></tr> <tr class="memdesc:ga838fac581e115574acc3711cad9f5877"><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer configuration node. <a href="#ga838fac581e115574acc3711cad9f5877">More...</a><br/></td></tr> <tr class="separator:ga838fac581e115574acc3711cad9f5877"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2c27175c162fe5027e3f1b3d5420afbb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2c27175c162fe5027e3f1b3d5420afbb">snd_config_make_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key)</td></tr> <tr class="memdesc:ga2c27175c162fe5027e3f1b3d5420afbb"><td class="mdescLeft"> </td><td class="mdescRight">Creates a 64-bit-integer configuration node. <a href="#ga2c27175c162fe5027e3f1b3d5420afbb">More...</a><br/></td></tr> <tr class="separator:ga2c27175c162fe5027e3f1b3d5420afbb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8f175813bfc2556bd08fd580f05d36e6"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga8f175813bfc2556bd08fd580f05d36e6">snd_config_make_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key)</td></tr> <tr class="memdesc:ga8f175813bfc2556bd08fd580f05d36e6"><td class="mdescLeft"> </td><td class="mdescRight">Creates a real number configuration node. <a href="#ga8f175813bfc2556bd08fd580f05d36e6">More...</a><br/></td></tr> <tr class="separator:ga8f175813bfc2556bd08fd580f05d36e6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6764115f489629be027b434c4e323cff"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6764115f489629be027b434c4e323cff">snd_config_make_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key)</td></tr> <tr class="memdesc:ga6764115f489629be027b434c4e323cff"><td class="mdescLeft"> </td><td class="mdescRight">Creates a string configuration node. <a href="#ga6764115f489629be027b434c4e323cff">More...</a><br/></td></tr> <tr class="separator:ga6764115f489629be027b434c4e323cff"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadbcce71d8d3a78709fc2a78d6f543584"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gadbcce71d8d3a78709fc2a78d6f543584">snd_config_make_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key)</td></tr> <tr class="memdesc:gadbcce71d8d3a78709fc2a78d6f543584"><td class="mdescLeft"> </td><td class="mdescRight">Creates a pointer configuration node. <a href="#gadbcce71d8d3a78709fc2a78d6f543584">More...</a><br/></td></tr> <tr class="separator:gadbcce71d8d3a78709fc2a78d6f543584"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga2ce24133c1d6828e2afe366284c61e01"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga2ce24133c1d6828e2afe366284c61e01">snd_config_make_compound</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, int join)</td></tr> <tr class="memdesc:ga2ce24133c1d6828e2afe366284c61e01"><td class="mdescLeft"> </td><td class="mdescRight">Creates an empty compound configuration node. <a href="#ga2ce24133c1d6828e2afe366284c61e01">More...</a><br/></td></tr> <tr class="separator:ga2ce24133c1d6828e2afe366284c61e01"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafeb0552cbed09a3badbb5e74c7a7973d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafeb0552cbed09a3badbb5e74c7a7973d">snd_config_imake_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, const long value)</td></tr> <tr class="memdesc:gafeb0552cbed09a3badbb5e74c7a7973d"><td class="mdescLeft"> </td><td class="mdescRight">Creates an integer configuration node with the given initial value. <a href="#gafeb0552cbed09a3badbb5e74c7a7973d">More...</a><br/></td></tr> <tr class="separator:gafeb0552cbed09a3badbb5e74c7a7973d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga04cfbfda89dc17c19a5a4076271a4d07"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga04cfbfda89dc17c19a5a4076271a4d07">snd_config_imake_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, const long long value)</td></tr> <tr class="memdesc:ga04cfbfda89dc17c19a5a4076271a4d07"><td class="mdescLeft"> </td><td class="mdescRight">Creates a 64-bit-integer configuration node with the given initial value. <a href="#ga04cfbfda89dc17c19a5a4076271a4d07">More...</a><br/></td></tr> <tr class="separator:ga04cfbfda89dc17c19a5a4076271a4d07"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga968e5bb773dfea922b5272636b26e9c2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga968e5bb773dfea922b5272636b26e9c2">snd_config_imake_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, const double value)</td></tr> <tr class="memdesc:ga968e5bb773dfea922b5272636b26e9c2"><td class="mdescLeft"> </td><td class="mdescRight">Creates a real number configuration node with the given initial value. <a href="#ga968e5bb773dfea922b5272636b26e9c2">More...</a><br/></td></tr> <tr class="separator:ga968e5bb773dfea922b5272636b26e9c2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa83035f79027a464bf9d5d31e0a20547"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa83035f79027a464bf9d5d31e0a20547">snd_config_imake_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, const char *ascii)</td></tr> <tr class="memdesc:gaa83035f79027a464bf9d5d31e0a20547"><td class="mdescLeft"> </td><td class="mdescRight">Creates a string configuration node with the given initial value. <a href="#gaa83035f79027a464bf9d5d31e0a20547">More...</a><br/></td></tr> <tr class="separator:gaa83035f79027a464bf9d5d31e0a20547"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5bb83b269c6e41717a3524abcec5f787"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5bb83b269c6e41717a3524abcec5f787"></a> int </td><td class="memItemRight" valign="bottom"><b>snd_config_imake_safe_string</b> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, const char *ascii)</td></tr> <tr class="separator:ga5bb83b269c6e41717a3524abcec5f787"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac7c6ce28a676169fff594aa4222705b2"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac7c6ce28a676169fff594aa4222705b2">snd_config_imake_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> **config, const char *key, const void *<a class="el" href="seq__event_8h.html#add9af9569af79ec26dd741fb226b38ba">ptr</a>)</td></tr> <tr class="memdesc:gac7c6ce28a676169fff594aa4222705b2"><td class="mdescLeft"> </td><td class="mdescRight">Creates a pointer configuration node with the given initial value. <a href="#gac7c6ce28a676169fff594aa4222705b2">More...</a><br/></td></tr> <tr class="separator:gac7c6ce28a676169fff594aa4222705b2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6def4c43ce325abaa3ddfba5a4f4d138"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6def4c43ce325abaa3ddfba5a4f4d138">snd_config_get_type</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config)</td></tr> <tr class="memdesc:ga6def4c43ce325abaa3ddfba5a4f4d138"><td class="mdescLeft"> </td><td class="mdescRight">Returns the type of a configuration node. <a href="#ga6def4c43ce325abaa3ddfba5a4f4d138">More...</a><br/></td></tr> <tr class="separator:ga6def4c43ce325abaa3ddfba5a4f4d138"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga550948931d44695b6d8e8f148f87cb54"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga550948931d44695b6d8e8f148f87cb54">snd_config_set_id</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *id)</td></tr> <tr class="memdesc:ga550948931d44695b6d8e8f148f87cb54"><td class="mdescLeft"> </td><td class="mdescRight">Sets the id of a configuration node. <a href="#ga550948931d44695b6d8e8f148f87cb54">More...</a><br/></td></tr> <tr class="separator:ga550948931d44695b6d8e8f148f87cb54"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6fd3be48221cae9cee9c7245a0804d73"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6fd3be48221cae9cee9c7245a0804d73">snd_config_set_integer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long value)</td></tr> <tr class="memdesc:ga6fd3be48221cae9cee9c7245a0804d73"><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of an integer configuration node. <a href="#ga6fd3be48221cae9cee9c7245a0804d73">More...</a><br/></td></tr> <tr class="separator:ga6fd3be48221cae9cee9c7245a0804d73"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafdb63c78c07e11194a28d591b0fbffc4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gafdb63c78c07e11194a28d591b0fbffc4">snd_config_set_integer64</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long long value)</td></tr> <tr class="memdesc:gafdb63c78c07e11194a28d591b0fbffc4"><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a 64-bit-integer configuration node. <a href="#gafdb63c78c07e11194a28d591b0fbffc4">More...</a><br/></td></tr> <tr class="separator:gafdb63c78c07e11194a28d591b0fbffc4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga46c71d5d36c64f0a06ceae956a39fedc"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga46c71d5d36c64f0a06ceae956a39fedc">snd_config_set_real</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double value)</td></tr> <tr class="memdesc:ga46c71d5d36c64f0a06ceae956a39fedc"><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a real-number configuration node. <a href="#ga46c71d5d36c64f0a06ceae956a39fedc">More...</a><br/></td></tr> <tr class="separator:ga46c71d5d36c64f0a06ceae956a39fedc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0f76f8ad47dce7f90580c8d59c6e44f8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga0f76f8ad47dce7f90580c8d59c6e44f8">snd_config_set_string</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *value)</td></tr> <tr class="memdesc:ga0f76f8ad47dce7f90580c8d59c6e44f8"><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a string configuration node. <a href="#ga0f76f8ad47dce7f90580c8d59c6e44f8">More...</a><br/></td></tr> <tr class="separator:ga0f76f8ad47dce7f90580c8d59c6e44f8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac1810a11f576fe339074502f4fed4a91"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac1810a11f576fe339074502f4fed4a91">snd_config_set_ascii</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *ascii)</td></tr> <tr class="memdesc:gac1810a11f576fe339074502f4fed4a91"><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a configuration node. <a href="#gac1810a11f576fe339074502f4fed4a91">More...</a><br/></td></tr> <tr class="separator:gac1810a11f576fe339074502f4fed4a91"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga037c3bf96326bb6f5dfd340475b34fbf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga037c3bf96326bb6f5dfd340475b34fbf">snd_config_set_pointer</a> (<a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const void *<a class="el" href="seq__event_8h.html#add9af9569af79ec26dd741fb226b38ba">ptr</a>)</td></tr> <tr class="memdesc:ga037c3bf96326bb6f5dfd340475b34fbf"><td class="mdescLeft"> </td><td class="mdescRight">Changes the value of a pointer configuration node. <a href="#ga037c3bf96326bb6f5dfd340475b34fbf">More...</a><br/></td></tr> <tr class="separator:ga037c3bf96326bb6f5dfd340475b34fbf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae366751e8ea98aeb69f9ef876f7b949c"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gae366751e8ea98aeb69f9ef876f7b949c">snd_config_get_id</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char **value)</td></tr> <tr class="memdesc:gae366751e8ea98aeb69f9ef876f7b949c"><td class="mdescLeft"> </td><td class="mdescRight">Returns the id of a configuration node. <a href="#gae366751e8ea98aeb69f9ef876f7b949c">More...</a><br/></td></tr> <tr class="separator:gae366751e8ea98aeb69f9ef876f7b949c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabfbc36060fd4f5d1d929938443f95559"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gabfbc36060fd4f5d1d929938443f95559">snd_config_get_integer</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long *value)</td></tr> <tr class="memdesc:gabfbc36060fd4f5d1d929938443f95559"><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of an integer configuration node. <a href="#gabfbc36060fd4f5d1d929938443f95559">More...</a><br/></td></tr> <tr class="separator:gabfbc36060fd4f5d1d929938443f95559"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf4d9e68918f7d49d7b4b14ffbe94afc1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf4d9e68918f7d49d7b4b14ffbe94afc1">snd_config_get_integer64</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, long long *value)</td></tr> <tr class="memdesc:gaf4d9e68918f7d49d7b4b14ffbe94afc1"><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a 64-bit-integer configuration node. <a href="#gaf4d9e68918f7d49d7b4b14ffbe94afc1">More...</a><br/></td></tr> <tr class="separator:gaf4d9e68918f7d49d7b4b14ffbe94afc1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad4d23c0bf941527d80aeb6f991bf88c9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gad4d23c0bf941527d80aeb6f991bf88c9">snd_config_get_real</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double *value)</td></tr> <tr class="memdesc:gad4d23c0bf941527d80aeb6f991bf88c9"><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a real-number configuration node. <a href="#gad4d23c0bf941527d80aeb6f991bf88c9">More...</a><br/></td></tr> <tr class="separator:gad4d23c0bf941527d80aeb6f991bf88c9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga79738baffa6fa7722b1027ab84ac61bb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga79738baffa6fa7722b1027ab84ac61bb">snd_config_get_ireal</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, double *value)</td></tr> <tr class="memdesc:ga79738baffa6fa7722b1027ab84ac61bb"><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a real or integer configuration node. <a href="#ga79738baffa6fa7722b1027ab84ac61bb">More...</a><br/></td></tr> <tr class="separator:ga79738baffa6fa7722b1027ab84ac61bb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5ab99983d1d93ddbcde9bb69a1e4f9fb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga5ab99983d1d93ddbcde9bb69a1e4f9fb">snd_config_get_string</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char **value)</td></tr> <tr class="memdesc:ga5ab99983d1d93ddbcde9bb69a1e4f9fb"><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a string configuration node. <a href="#ga5ab99983d1d93ddbcde9bb69a1e4f9fb">More...</a><br/></td></tr> <tr class="separator:ga5ab99983d1d93ddbcde9bb69a1e4f9fb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa26f97e098a0dd2cd5e28299b6b6c132"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa26f97e098a0dd2cd5e28299b6b6c132">snd_config_get_ascii</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, char **value)</td></tr> <tr class="memdesc:gaa26f97e098a0dd2cd5e28299b6b6c132"><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a configuration node as a string. <a href="#gaa26f97e098a0dd2cd5e28299b6b6c132">More...</a><br/></td></tr> <tr class="separator:gaa26f97e098a0dd2cd5e28299b6b6c132"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga54868e0fa30458ef1c259772a8e7c6d7"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga54868e0fa30458ef1c259772a8e7c6d7">snd_config_get_pointer</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const void **value)</td></tr> <tr class="memdesc:ga54868e0fa30458ef1c259772a8e7c6d7"><td class="mdescLeft"> </td><td class="mdescRight">Returns the value of a pointer configuration node. <a href="#ga54868e0fa30458ef1c259772a8e7c6d7">More...</a><br/></td></tr> <tr class="separator:ga54868e0fa30458ef1c259772a8e7c6d7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaeec157fd161a138e402c9bd243bbd408"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaeec157fd161a138e402c9bd243bbd408">snd_config_test_id</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *config, const char *id)</td></tr> <tr class="memdesc:gaeec157fd161a138e402c9bd243bbd408"><td class="mdescLeft"> </td><td class="mdescRight">Compares the id of a configuration node to a given string. <a href="#gaeec157fd161a138e402c9bd243bbd408">More...</a><br/></td></tr> <tr class="separator:gaeec157fd161a138e402c9bd243bbd408"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac8965466674c10b9a119d591ed484cef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac8965466674c10b9a119d591ed484cef">snd_config_iterator_first</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *node)</td></tr> <tr class="memdesc:gac8965466674c10b9a119d591ed484cef"><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator pointing to a node's first child. <a href="#gac8965466674c10b9a119d591ed484cef">More...</a><br/></td></tr> <tr class="separator:gac8965466674c10b9a119d591ed484cef"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga10c27ddc83c78680d91a167dd2f0a3cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb">snd_config_iterator_next</a> (const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> iterator)</td></tr> <tr class="memdesc:ga10c27ddc83c78680d91a167dd2f0a3cb"><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator pointing to the next sibling. <a href="#ga10c27ddc83c78680d91a167dd2f0a3cb">More...</a><br/></td></tr> <tr class="separator:ga10c27ddc83c78680d91a167dd2f0a3cb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac08a30bc630481f69feb2170fed4afda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gac08a30bc630481f69feb2170fed4afda">snd_config_iterator_end</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *node)</td></tr> <tr class="memdesc:gac08a30bc630481f69feb2170fed4afda"><td class="mdescLeft"> </td><td class="mdescRight">Returns an iterator that ends a node's children list. <a href="#gac08a30bc630481f69feb2170fed4afda">More...</a><br/></td></tr> <tr class="separator:gac08a30bc630481f69feb2170fed4afda"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa91fe1d926d88041ed516a6a7293f606"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606">snd_config_iterator_entry</a> (const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> iterator)</td></tr> <tr class="memdesc:gaa91fe1d926d88041ed516a6a7293f606"><td class="mdescLeft"> </td><td class="mdescRight">Returns the configuration node handle pointed to by an iterator. <a href="#gaa91fe1d926d88041ed516a6a7293f606">More...</a><br/></td></tr> <tr class="separator:gaa91fe1d926d88041ed516a6a7293f606"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga11dfab861b537b564f0c76d9b1eb2935"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga11dfab861b537b564f0c76d9b1eb2935">snd_config_get_bool_ascii</a> (const char *ascii)</td></tr> <tr class="memdesc:ga11dfab861b537b564f0c76d9b1eb2935"><td class="mdescLeft"> </td><td class="mdescRight">Gets the boolean value from the given ASCII string. <a href="#ga11dfab861b537b564f0c76d9b1eb2935">More...</a><br/></td></tr> <tr class="separator:ga11dfab861b537b564f0c76d9b1eb2935"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae5d80ee31e779992fd14672fd850a3d1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gae5d80ee31e779992fd14672fd850a3d1">snd_config_get_bool</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *conf)</td></tr> <tr class="memdesc:gae5d80ee31e779992fd14672fd850a3d1"><td class="mdescLeft"> </td><td class="mdescRight">Gets the boolean value from a configuration node. <a href="#gae5d80ee31e779992fd14672fd850a3d1">More...</a><br/></td></tr> <tr class="separator:gae5d80ee31e779992fd14672fd850a3d1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5759c972706da4bd3be35c9336568bfd"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga5759c972706da4bd3be35c9336568bfd">snd_config_get_ctl_iface_ascii</a> (const char *ascii)</td></tr> <tr class="memdesc:ga5759c972706da4bd3be35c9336568bfd"><td class="mdescLeft"> </td><td class="mdescRight">Gets the control interface index from the given ASCII string. <a href="#ga5759c972706da4bd3be35c9336568bfd">More...</a><br/></td></tr> <tr class="separator:ga5759c972706da4bd3be35c9336568bfd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaaf1c1ea4801961e3107ca23ba89bd429"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaaf1c1ea4801961e3107ca23ba89bd429">snd_config_get_ctl_iface</a> (const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *conf)</td></tr> <tr class="memdesc:gaaf1c1ea4801961e3107ca23ba89bd429"><td class="mdescLeft"> </td><td class="mdescRight">Gets the control interface index from a configuration node. <a href="#gaaf1c1ea4801961e3107ca23ba89bd429">More...</a><br/></td></tr> <tr class="separator:gaaf1c1ea4801961e3107ca23ba89bd429"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf35b51ab61fd7ea628ab088a1b444aa4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#gaf35b51ab61fd7ea628ab088a1b444aa4">snd_names_list</a> (const char *iface, snd_devname_t **list)</td></tr> <tr class="memdesc:gaf35b51ab61fd7ea628ab088a1b444aa4"><td class="mdescLeft"> </td><td class="mdescRight">This function is unimplemented. <a href="#gaf35b51ab61fd7ea628ab088a1b444aa4">More...</a><br/></td></tr> <tr class="separator:gaf35b51ab61fd7ea628ab088a1b444aa4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga665741321b3c1c3f07a6eeb969406cb8"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga665741321b3c1c3f07a6eeb969406cb8">snd_names_list_free</a> (snd_devname_t *list)</td></tr> <tr class="memdesc:ga665741321b3c1c3f07a6eeb969406cb8"><td class="mdescLeft"> </td><td class="mdescRight">This function is unimplemented. <a href="#ga665741321b3c1c3f07a6eeb969406cb8">More...</a><br/></td></tr> <tr class="separator:ga665741321b3c1c3f07a6eeb969406cb8"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:ga6cf7955d3a072d354dab4d7b536c7831"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831">snd_config</a></td></tr> <tr class="memdesc:ga6cf7955d3a072d354dab4d7b536c7831"><td class="mdescLeft"> </td><td class="mdescRight">Configuration top-level node (the global configuration). <a href="#ga6cf7955d3a072d354dab4d7b536c7831">More...</a><br/></td></tr> <tr class="separator:ga6cf7955d3a072d354dab4d7b536c7831"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6cf7955d3a072d354dab4d7b536c7831"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831">snd_config</a> = NULL</td></tr> <tr class="memdesc:ga6cf7955d3a072d354dab4d7b536c7831"><td class="mdescLeft"> </td><td class="mdescRight">Configuration top-level node (the global configuration). <a href="#ga6cf7955d3a072d354dab4d7b536c7831">More...</a><br/></td></tr> <tr class="separator:ga6cf7955d3a072d354dab4d7b536c7831"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p>The configuration functions and types allow you to read, enumerate, modify and write the contents of ALSA configuration files. </p> <h2 class="groupheader">Macro Definition Documentation</h2> <a class="anchor" id="gac3f21333e1f9b602cad9b06cb418fa80"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define snd_config_for_each</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">pos, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">next, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">node </td> </tr> <tr> <td></td> <td>)</td> <td></td><td>   for (pos = <a class="el" href="group___config.html#gac8965466674c10b9a119d591ed484cef">snd_config_iterator_first</a>(node), next = <a class="el" href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb">snd_config_iterator_next</a>(pos); pos != <a class="el" href="group___config.html#gac08a30bc630481f69feb2170fed4afda">snd_config_iterator_end</a>(node); pos = next, next = <a class="el" href="group___config.html#ga10c27ddc83c78680d91a167dd2f0a3cb">snd_config_iterator_next</a>(pos))</td> </tr> </table> </div><div class="memdoc"> <p>Helper macro to iterate over the children of a compound node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">pos</td><td>Iterator variable for the current node. </td></tr> <tr><td class="paramdir">[in,out]</td><td class="paramname">next</td><td>Temporary iterator variable for the next node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">node</td><td>Handle to the compound configuration node to iterate over.</td></tr> </table> </dd> </dl> <p>Use this macro like a <code>for</code> statement, e.g.: </p> <div class="fragment"><div class="line">* <a class="code" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> pos, next;</div> <div class="line">* <a class="code" href="group___config.html#gac3f21333e1f9b602cad9b06cb418fa80">snd_config_for_each</a>(pos, next, node) {</div> <div class="line">* <a class="code" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> *entry = <a class="code" href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606">snd_config_iterator_entry</a>(pos);</div> <div class="line">* ...</div> <div class="line">* }</div> <div class="line">* </div> </div><!-- fragment --><p>This macro allows deleting or removing the current node. </p> </div> </div> <h2 class="groupheader">Typedef Documentation</h2> <a class="anchor" id="ga6c621ab8875a222e1fcb56e9feed6ec6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct _snd_config_iterator* <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a></td> </tr> </table> </div><div class="memdoc"> <p>Type for a configuration compound iterator. </p> <p>The ALSA library uses this pointer type as a handle to a configuration compound iterator. Applications don't directly access the contents of the structure pointed to by this type. </p> </div> </div> <a class="anchor" id="ga1c20905af775ae77d04d1a5696f67985"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct _snd_config <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a></td> </tr> </table> </div><div class="memdoc"> <p>Internal structure for a configuration node object. </p> <p>The ALSA library uses a pointer to this structure as a handle to a configuration node. Applications don't access its contents directly. </p> </div> </div> <a class="anchor" id="gab10b229189a94e3fcbac7f6ca5794cc0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct _snd_config_update <a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a></td> </tr> </table> </div><div class="memdoc"> <p>Internal structure for a configuration private update object. </p> <p>The ALSA library uses this structure to save private update information. </p> </div> </div> <h2 class="groupheader">Enumeration Type Documentation</h2> <a class="anchor" id="gaa41083e55d19c7755c5d624030e06887"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a></td> </tr> </table> </div><div class="memdoc"> <p>Configuration node type. </p> <table class="fieldtable"> <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggaa41083e55d19c7755c5d624030e06887aaa9d6e02cd0eb42db96122c925c023e7"></a>SND_CONFIG_TYPE_INTEGER</em> </td><td class="fielddoc"> <p>Integer number. </p> </td></tr> <tr><td class="fieldname"><em><a class="anchor" id="ggaa41083e55d19c7755c5d624030e06887a710f962ebb93e3824ddee2d833f735a2"></a>SND_CONFIG_TYPE_INTEGER64</em> </td><td class="fielddoc"> <p>64-bit integer number. </p> </td></tr> <tr><td class="fieldname"><em><a class="anchor" id="ggaa41083e55d19c7755c5d624030e06887a0a938daae4006e204150082ab9c73508"></a>SND_CONFIG_TYPE_REAL</em> </td><td class="fielddoc"> <p>Real number. </p> </td></tr> <tr><td class="fieldname"><em><a class="anchor" id="ggaa41083e55d19c7755c5d624030e06887a99eed49f50d4f62a7fc0c95301918f49"></a>SND_CONFIG_TYPE_STRING</em> </td><td class="fielddoc"> <p>Character string. </p> </td></tr> <tr><td class="fieldname"><em><a class="anchor" id="ggaa41083e55d19c7755c5d624030e06887ab0b5d34e2f16e81d4eb5f933c30158fe"></a>SND_CONFIG_TYPE_POINTER</em> </td><td class="fielddoc"> <p>Pointer (runtime only, cannot be saved). </p> </td></tr> <tr><td class="fieldname"><em><a class="anchor" id="ggaa41083e55d19c7755c5d624030e06887a82b5c1a9dbadaa4e36815fc1f01fc2f7"></a>SND_CONFIG_TYPE_COMPOUND</em> </td><td class="fielddoc"> <p>Compound node. </p> </td></tr> </table> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="gaf62dd825828c05f1d63a62eee7046080"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_add </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>parent</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>child</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Adds a child to a compound configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">parent</td><td>Handle to a compound configuration node. </td></tr> <tr><td class="paramname">child</td><td>Handle to the configuration node to be added. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function makes the node <em>child</em> a child of the node <em>parent</em>.</p> <p>The parent node then owns the child node, i.e., the child node gets deleted together with its parent.</p> <p><em>child</em> must have an id.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>child</em> does not have an id. </dd> <dt>-EINVAL</dt> <dd><em>child</em> already has a parent. </dd> <dt>-EEXIST</dt> <dd><em>parent</em> already contains a child node with the same id as <em>child</em>. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga30f30bd27d13fbb3527270b3fc9e1676"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_copy </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>src</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a copy of a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">dst</td><td>The function puts the handle to the new configuration node at the address specified by <em>dst</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>Handle to the source configuration node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A non-negative value if successful, otherwise a negative error code.</dd></dl> <p>This function creates a deep copy, i.e., if <em>src</em> is a compound node, all children are copied recursively.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga2a006b942faa3335a958a7df7bcea17e"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_delete </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Frees a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node to be deleted. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function frees a configuration node and all its resources.</p> <p>If the node is a child node, it is removed from the tree before being deleted.</p> <p>If the node is a compound node, its descendants (the whole subtree) are deleted recursively.</p> <p>The function is supposed to be called only for locally copied config trees. For the global tree, take the reference via <a class="el" href="group___config.html#ga568fcf6f45808319725ac066714b25a8" title="Updates snd_config and takes its reference. ">snd_config_update_ref</a> and free it via <a class="el" href="group___config.html#gac87538403cb6f8125468a1af56f42e33" title="Unreference the config tree. ">snd_config_unref</a>.</p> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2</dd></dl> <dl class="section see"><dt>See Also</dt><dd><a class="el" href="conf_8c.html#ad4d69b003662e09e8206a7892e849d27" title="Removes a configuration node from its tree. ">snd_config_remove</a> </dd></dl> </div> </div> <a class="anchor" id="gaec120883e56ecb510e064151e0b11d51"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_delete_compound_members </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Deletes the children of a node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the compound configuration node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function removes and frees all children of a configuration node.</p> <p>Any compound nodes among the children of <em>config</em> are deleted recursively.</p> <p>After a successful call to this function, <em>config</em> is an empty compound node.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a compound node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga1a51645a07e204d4e814d890452da558"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_evaluate </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>private_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Evaluates a configuration node at runtime. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">config</td><td>Handle to the source configuration node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">root</td><td>Handle to the root of the source configuration. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">private_data</td><td>Handle to the private data node for runtime evaluation. </td></tr> <tr><td class="paramdir"></td><td class="paramname">result</td><td>Must be <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A non-negative value if successful, otherwise a negative error code.</dd></dl> <p>This function evaluates any functions (<code>@func</code>) in <em>config</em> and replaces those nodes with the respective function results. </p> </div> </div> <a class="anchor" id="ga7759f41c3757ce72ee9bd118976071c2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_expand </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>root</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>args</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>private_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Expands a configuration node, applying arguments and functions. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">root</td><td>Handle to the root configuration node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>Arguments string, can be <code>NULL</code>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">private_data</td><td>Handle to the private data node for functions. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>The function puts the handle to the result configuration node at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A non-negative value if successful, otherwise a negative error code.</dd></dl> <p>If <em>config</em> has arguments (defined by a child with id <code>@args</code>), this function replaces any string node beginning with $ with the respective argument value, or the default argument value, or nothing. Furthermore, any functions are evaluated (see <a class="el" href="group___config.html#ga1a51645a07e204d4e814d890452da558" title="Evaluates a configuration node at runtime. ">snd_config_evaluate</a>). The resulting copy of <em>config</em> is returned in <em>result</em>. </p> </div> </div> <a class="anchor" id="gaa26f97e098a0dd2cd5e28299b6b6c132"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_ascii </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>ascii</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the value of a configuration node as a string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ascii</td><td>The function puts the pointer to the returned string at the address specified by <em>ascii</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function dynamically allocates the returned string. The application is responsible for deleting it with <code>free()</code> when it is no longer used.</p> <p>For a string node with <code>NULL</code> value, the returned string is <code>NULL</code>.</p> <p>Supported node types are <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887aaa9d6e02cd0eb42db96122c925c023e7">SND_CONFIG_TYPE_INTEGER</a>, <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a710f962ebb93e3824ddee2d833f735a2">SND_CONFIG_TYPE_INTEGER64</a>, <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a0a938daae4006e204150082ab9c73508">SND_CONFIG_TYPE_REAL</a>, and <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a99eed49f50d4f62a7fc0c95301918f49">SND_CONFIG_TYPE_STRING</a>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a (64-bit) integer or real number or string node. </dd> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gae5d80ee31e779992fd14672fd850a3d1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_bool </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>conf</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the boolean value from a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">conf</td><td>Handle to the configuration node to be parsed. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 or 1 if successful, otherwise a negative error code. </dd></dl> </div> </div> <a class="anchor" id="ga11dfab861b537b564f0c76d9b1eb2935"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_bool_ascii </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>ascii</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the boolean value from the given ASCII string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">ascii</td><td>The string to be parsed. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 or 1 if successful, otherwise a negative error code. </dd></dl> </div> </div> <a class="anchor" id="gaaf1c1ea4801961e3107ca23ba89bd429"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_ctl_iface </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>conf</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the control interface index from a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">conf</td><td>Handle to the configuration node to be parsed. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The control interface index if successful, otherwise a negative error code. </dd></dl> </div> </div> <a class="anchor" id="ga5759c972706da4bd3be35c9336568bfd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_ctl_iface_ascii </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>ascii</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Gets the control interface index from the given ASCII string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">ascii</td><td>The string to be parsed. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The control interface index if successful, otherwise a negative error code. </dd></dl> </div> </div> <a class="anchor" id="gae366751e8ea98aeb69f9ef876f7b949c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_id </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the id of a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">id</td><td>The function puts the pointer to the id string at the address specified by <em>id</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>The returned string is owned by the configuration node; the application must not modify or delete it, and the string becomes invalid when the node's id changes or when the node is freed.</p> <p>If the node does not have an id, <em>*id</em> is set to <code>NULL</code>.</p> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gabfbc36060fd4f5d1d929938443f95559"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_integer </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long * </td> <td class="paramname"><em>ptr</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the value of an integer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>The node's value. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not an integer node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gaf4d9e68918f7d49d7b4b14ffbe94afc1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_integer64 </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long long * </td> <td class="paramname"><em>ptr</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the value of a 64-bit-integer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>The node's value. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a 64-bit-integer node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga79738baffa6fa7722b1027ab84ac61bb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_ireal </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>ptr</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the value of a real or integer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>The node's value. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>If the node's type is integer or integer64, the value is converted to the <code>double</code> type on the fly.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a number node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga54868e0fa30458ef1c259772a8e7c6d7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_pointer </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void ** </td> <td class="paramname"><em>ptr</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the value of a pointer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>The function puts the node's value at the address specified by <em>ptr</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a string node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="gad4d23c0bf941527d80aeb6f991bf88c9"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_real </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double * </td> <td class="paramname"><em>ptr</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the value of a real-number configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>The node's value. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a real-number node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga5ab99983d1d93ddbcde9bb69a1e4f9fb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_get_string </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"><em>ptr</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the value of a string configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">ptr</td><td>The function puts the node's value at the address specified by <em>ptr</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>The returned string is owned by the configuration node; the application must not modify or delete it, and the string becomes invalid when the node's value changes or when the node is freed.</p> <p>The string may be <code>NULL</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a string node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga6def4c43ce325abaa3ddfba5a4f4d138"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> snd_config_get_type </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the type of a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The node's type.</dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gafeb0552cbed09a3badbb5e74c7a7973d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_imake_integer </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const long </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates an integer configuration node with the given initial value. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The initial value of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887aaa9d6e02cd0eb42db96122c925c023e7">SND_CONFIG_TYPE_INTEGER</a> and with value <em>value</em>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga04cfbfda89dc17c19a5a4076271a4d07"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_imake_integer64 </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const long long </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a 64-bit-integer configuration node with the given initial value. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The initial value of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a710f962ebb93e3824ddee2d833f735a2">SND_CONFIG_TYPE_INTEGER64</a> and with value <em>value</em>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gac7c6ce28a676169fff594aa4222705b2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_imake_pointer </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a pointer configuration node with the given initial value. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The initial value of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887ab0b5d34e2f16e81d4eb5f933c30158fe">SND_CONFIG_TYPE_POINTER</a> and with value <code>value</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga968e5bb773dfea922b5272636b26e9c2"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_imake_real </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const double </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a real number configuration node with the given initial value. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The initial value of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a0a938daae4006e204150082ab9c73508">SND_CONFIG_TYPE_REAL</a> and with value <em>value</em>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="gaa83035f79027a464bf9d5d31e0a20547"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_imake_string </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a string configuration node with the given initial value. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">value</td><td>The initial value of the new node. May be <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a99eed49f50d4f62a7fc0c95301918f49">SND_CONFIG_TYPE_STRING</a> and with a copy of the string <code>value</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gac08a30bc630481f69feb2170fed4afda"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> snd_config_iterator_end </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns an iterator that ends a node's children list. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to a configuration node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>An iterator that indicates the end of <em>config's</em> children list.</dd></dl> <p><em>config</em> must be a compound node.</p> <p>The return value can be understood as pointing past the last child of <em>config</em>.</p> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gaa91fe1d926d88041ed516a6a7293f606"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a>* snd_config_iterator_entry </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td> <td class="paramname"><em>iterator</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns the configuration node handle pointed to by an iterator. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">iterator</td><td>A configuration node iterator. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The configuration node handle pointed to by <em>iterator</em>.</dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gac8965466674c10b9a119d591ed484cef"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> snd_config_iterator_first </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns an iterator pointing to a node's first child. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to a configuration node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>An iterator pointing to <em>config's</em> first child.</dd></dl> <p><em>config</em> must be a compound node.</p> <p>The returned iterator is valid if it is not equal to the return value of <a class="el" href="group___config.html#gac08a30bc630481f69feb2170fed4afda" title="Returns an iterator that ends a node's children list. ">snd_config_iterator_end</a> on <em>config</em>.</p> <p>Use <a class="el" href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606" title="Returns the configuration node handle pointed to by an iterator. ">snd_config_iterator_entry</a> to get the handle of the node pointed to.</p> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga10c27ddc83c78680d91a167dd2f0a3cb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> snd_config_iterator_next </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga6c621ab8875a222e1fcb56e9feed6ec6">snd_config_iterator_t</a> </td> <td class="paramname"><em>iterator</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Returns an iterator pointing to the next sibling. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">iterator</td><td>An iterator pointing to a child configuration node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>An iterator pointing to the next sibling of <em>iterator</em>.</dd></dl> <p>The returned iterator is valid if it is not equal to the return value of <a class="el" href="group___config.html#gac08a30bc630481f69feb2170fed4afda" title="Returns an iterator that ends a node's children list. ">snd_config_iterator_end</a> on the node's parent.</p> <p>Use <a class="el" href="group___config.html#gaa91fe1d926d88041ed516a6a7293f606" title="Returns the configuration node handle pointed to by an iterator. ">snd_config_iterator_entry</a> to get the handle of the node pointed to.</p> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga51f79d1f24a519e126415c72210525b0"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_load </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> * </td> <td class="paramname"><em>in</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Loads a configuration tree. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to a top level configuration node. </td></tr> <tr><td class="paramname">in</td><td>Input handle to read the configuration from. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>The definitions loaded from the input are added to <em>config</em>, which must be a compound node.</p> <dl class="section user"><dt>Errors:</dt><dd>Any errors encountered when parsing the input or returned by hooks or functions.</dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga27334922bab8391aa2ef1813f48f4d70"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_load_override </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___input.html#ga39165553a2907c5a27f325e3ce4e8301">snd_input_t</a> * </td> <td class="paramname"><em>in</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Loads a configuration tree and overrides existing configuration nodes. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to a top level configuration node. </td></tr> <tr><td class="paramname">in</td><td>Input handle to read the configuration from. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function loads definitions from <em>in</em> into <em>config</em> like <a class="el" href="group___config.html#ga51f79d1f24a519e126415c72210525b0" title="Loads a configuration tree. ">snd_config_load</a>, but the default mode for input nodes is 'override' (!) instead of 'merge+create' (+). </p> </div> </div> <a class="anchor" id="gac570ecbaba611ccc12bc235a1f4d0181"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_make </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#gaa41083e55d19c7755c5d624030e06887">snd_config_type_t</a> </td> <td class="paramname"><em>type</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>The type of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This functions creates a new node of the specified type. The new node has id <em>id</em>, which may be <code>NULL</code>.</p> <p>The value of the new node is zero (for numbers), or <code>NULL</code> (for strings and pointers), or empty (for compound nodes).</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga2ce24133c1d6828e2afe366284c61e01"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_make_compound </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>join</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates an empty compound configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">join</td><td>Join flag. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new empty node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a82b5c1a9dbadaa4e36815fc1f01fc2f7">SND_CONFIG_TYPE_COMPOUND</a>.</p> <p><em>join</em> determines how the compound node's id is printed when the configuration is saved to a text file. For example, if the join flag of compound node <code>a</code> is zero, the output will look as follows: </p> <div class="fragment"><div class="line">* a {</div> <div class="line">* b <span class="stringliteral">"hello"</span></div> <div class="line">* c 42</div> <div class="line">* }</div> <div class="line">* </div> </div><!-- fragment --><p> If, however, the join flag of <code>a</code> is nonzero, its id will be joined with its children's ids, like this: </p> <div class="fragment"><div class="line">* a.b <span class="stringliteral">"hello"</span></div> <div class="line">* a.c 42</div> <div class="line">* </div> </div><!-- fragment --><p> An <em>empty</em> compound node with its join flag set would result in no output, i.e., after saving and reloading the configuration file, that compound node would be lost.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga838fac581e115574acc3711cad9f5877"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_make_integer </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates an integer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887aaa9d6e02cd0eb42db96122c925c023e7">SND_CONFIG_TYPE_INTEGER</a> and with value <code>0</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2</dd></dl> <dl class="section see"><dt>See Also</dt><dd><a class="el" href="group___config.html#gafeb0552cbed09a3badbb5e74c7a7973d" title="Creates an integer configuration node with the given initial value. ">snd_config_imake_integer</a> </dd></dl> </div> </div> <a class="anchor" id="ga2c27175c162fe5027e3f1b3d5420afbb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_make_integer64 </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a 64-bit-integer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a710f962ebb93e3824ddee2d833f735a2">SND_CONFIG_TYPE_INTEGER64</a> and with value <code>0</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2</dd></dl> <dl class="section see"><dt>See Also</dt><dd><a class="el" href="group___config.html#ga04cfbfda89dc17c19a5a4076271a4d07" title="Creates a 64-bit-integer configuration node with the given initial value. ">snd_config_imake_integer64</a> </dd></dl> </div> </div> <a class="anchor" id="gadbcce71d8d3a78709fc2a78d6f543584"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_make_pointer </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a pointer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887ab0b5d34e2f16e81d4eb5f933c30158fe">SND_CONFIG_TYPE_POINTER</a> and with value <code>NULL</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section see"><dt>See Also</dt><dd><a class="el" href="group___config.html#gac7c6ce28a676169fff594aa4222705b2" title="Creates a pointer configuration node with the given initial value. ">snd_config_imake_pointer</a> </dd></dl> </div> </div> <a class="anchor" id="ga8f175813bfc2556bd08fd580f05d36e6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_make_real </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a real number configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a0a938daae4006e204150082ab9c73508">SND_CONFIG_TYPE_REAL</a> and with value <code>0.0</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section see"><dt>See Also</dt><dd><a class="el" href="group___config.html#ga968e5bb773dfea922b5272636b26e9c2" title="Creates a real number configuration node with the given initial value. ">snd_config_imake_real</a> </dd></dl> </div> </div> <a class="anchor" id="ga6764115f489629be027b434c4e323cff"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_make_string </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a string configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>The function puts the handle to the new node at the address specified by <em>config</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">id</td><td>The id of the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function creates a new node of type <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887a99eed49f50d4f62a7fc0c95301918f49">SND_CONFIG_TYPE_STRING</a> and with value <code>NULL</code>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2</dd></dl> <dl class="section see"><dt>See Also</dt><dd><a class="el" href="group___config.html#gaa83035f79027a464bf9d5d31e0a20547" title="Creates a string configuration node with the given initial value. ">snd_config_imake_string</a> </dd></dl> </div> </div> <a class="anchor" id="gae8baa15082818d721607932bb99f318d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_config_ref </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>cfg</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Take the reference of the config tree. </p> <p>Increases a reference counter of the given config tree.</p> <p>This function is supposed to be thread-safe. </p> </div> </div> <a class="anchor" id="gafac08a29a1e04b03a22028a8c70f78bd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_save </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___output.html#ga49729cc6454539495c1f5b6e95cd474a">snd_output_t</a> * </td> <td class="paramname"><em>out</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Dumps the contents of a configuration node or tree. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the (root) configuration node. </td></tr> <tr><td class="paramname">out</td><td>Output handle. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function writes a textual representation of <em>config's</em> value to the output <em>out</em>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd>A node in the tree has a type that cannot be printed, i.e., <a class="el" href="group___config.html#ggaa41083e55d19c7755c5d624030e06887ab0b5d34e2f16e81d4eb5f933c30158fe">SND_CONFIG_TYPE_POINTER</a>. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gabafb8cac2181c4c1e34b99f54421d1c6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_search </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Searches for a node in a configuration tree. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">key</td><td>Search key: one or more node ids, separated with dots. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function searches for a child node of <em>config</em> that is identified by <em>key</em>, which contains either the id of a direct child node of <em>config</em>, or a series of ids, separated with dots, where each id specifies a node that is contained in the previous compound node.</p> <p>In the following example, the comment after each node shows the search key to find that node, assuming that <em>config</em> is a handle to the compound node with id <code>config:</code> </p> <div class="fragment"><div class="line">* config {</div> <div class="line">* a 42 # <span class="stringliteral">"a"</span></div> <div class="line">* b { # <span class="stringliteral">"b"</span></div> <div class="line">* c <span class="stringliteral">"cee"</span> # <span class="stringliteral">"b.c"</span></div> <div class="line">* d { # <span class="stringliteral">"b.d"</span></div> <div class="line">* e 2.71828 # <span class="stringliteral">"b.d.e"</span></div> <div class="line">* }</div> <div class="line">* }</div> <div class="line">* }</div> <div class="line">* </div> </div><!-- fragment --><dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gad7c23084ee4052ad33d77db6278db46f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_search_definition </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>base</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>name</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Searches for a definition in a configuration tree, using aliases and expanding hooks and arguments. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the configuration (sub)tree to search. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">base</td><td>Implicit key base, or <code>NULL</code> for none. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">name</td><td>Key suffix, optionally with arguments. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>The function puts the handle to the expanded found node at the address specified by <em>result</em>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A non-negative value if successful, otherwise a negative error code.</dd></dl> <p>This functions searches for a child node of <em>config</em>, allowing aliases and expanding hooks, like <a class="el" href="conf_8c.html#a1f86a23e559213fb07097637feeac70f" title="Searches for a node in a configuration tree, using an alias and expanding hooks. ">snd_config_search_alias_hooks</a>.</p> <p>If <em>name</em> contains a colon (:), the rest of the string after the colon contains arguments that are expanded as with <a class="el" href="group___config.html#ga7759f41c3757ce72ee9bd118976071c2" title="Expands a configuration node, applying arguments and functions. ">snd_config_expand</a>.</p> <p>In any case, <em>result</em> is a new node that must be freed by the caller.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in <em>key</em> or an alias id does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd> </dl> Additionally, any errors encountered when parsing the hook definitions or arguments, or returned by (hook) functions. </dd></dl> </div> </div> <a class="anchor" id="ga7b2f5723e44a1b69f2a8555d469803d1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_searchv </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname"><em>...</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Searches for a node in a configuration tree. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>Handle to the root of the configuration (sub)tree to search. </td></tr> <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>When <em>result</em> != <code>NULL</code>, the function puts the handle to the node found at the address specified by <em>result</em>. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">...</td><td>One or more concatenated dot-separated search keys, terminated with <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This functions searches for a child node of <em>config</em> like <a class="el" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6" title="Searches for a node in a configuration tree. ">snd_config_search</a>, but the search key is the concatenation of all passed search key strings. For example, the call </p> <div class="fragment"><div class="line">* <a class="code" href="group___config.html#ga7b2f5723e44a1b69f2a8555d469803d1">snd_config_searchv</a>(cfg, &res, <span class="stringliteral">"a"</span>, <span class="stringliteral">"b.c"</span>, <span class="stringliteral">"d.e"</span>, NULL);</div> <div class="line">* </div> </div><!-- fragment --><p> is equivalent to the call </p> <div class="fragment"><div class="line">* <a class="code" href="group___config.html#gabafb8cac2181c4c1e34b99f54421d1c6">snd_config_search</a>(cfg, <span class="stringliteral">"a.b.c.d.e"</span>, &res);</div> <div class="line">* </div> </div><!-- fragment --><dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOENT</dt> <dd>An id in a search key does not exist. </dd> <dt>-ENOENT</dt> <dd><em>config</em> or one of its child nodes to be searched is not a compound node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gac1810a11f576fe339074502f4fed4a91"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_set_ascii </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>ascii</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Changes the value of a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">ascii</td><td>The new value for the node, as an ASCII string. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function changes the node's value to a new value that is parsed from the string <em>ascii</em>. <em>ascii</em> must not be <code>NULL</code>, not even for a string node.</p> <p>The node's type does not change, i.e., the string must contain a valid value with the same type as the node's type. For a string node, the node's new value is a copy of <em>ascii</em>.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a number or string node. </dd> <dt>-EINVAL</dt> <dd>The value in <em>ascii</em> cannot be parsed. </dd> <dt>-ERANGE</dt> <dd>The value in <em>ascii</em> is too big for the node's type. </dd> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga550948931d44695b6d8e8f148f87cb54"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_set_id </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Sets the id of a configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">id</td><td>The new node id, must not be <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function stores a copy of <em>id</em> in the node.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EEXIST</dt> <dd>One of <em>config's</em> siblings already has the id <em>id</em>. </dd> <dt>-EINVAL</dt> <dd>The id of a node with a parent cannot be set to <code>NULL</code>. </dd> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga6fd3be48221cae9cee9c7245a0804d73"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_set_integer </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Changes the value of an integer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">value</td><td>The new value for the node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not an integer node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gafdb63c78c07e11194a28d591b0fbffc4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_set_integer64 </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long long </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Changes the value of a 64-bit-integer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">value</td><td>The new value for the node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a 64-bit-integer node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga037c3bf96326bb6f5dfd340475b34fbf"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_set_pointer </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Changes the value of a pointer configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">value</td><td>The new value for the node. May be <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function does not free the old pointer in the node.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a pointer node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga46c71d5d36c64f0a06ceae956a39fedc"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_set_real </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Changes the value of a real-number configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">value</td><td>The new value for the node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a real-number node. </dd> </dl> </dd></dl> </div> </div> <a class="anchor" id="ga0f76f8ad47dce7f90580c8d59c6e44f8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_set_string </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Changes the value of a string configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">value</td><td>The new value for the node. May be <code>NULL</code>. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This function deletes the old string in the node and stores a copy of <em>value</em> string in the node.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-EINVAL</dt> <dd><em>config</em> is not a string node. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gaeec157fd161a138e402c9bd243bbd408"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_test_id </td> <td>(</td> <td class="paramtype">const <a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>config</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Compares the id of a configuration node to a given string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">config</td><td>Handle to the configuration node. </td></tr> <tr><td class="paramname">id</td><td>ASCII id. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The same value as the result of the <code>strcmp</code> function, i.e., less than zero if <em>config's</em> id is lexicographically less than <em>id</em>, zero if <em>config's</em> id is equal to id, greater than zero otherwise. </dd></dl> </div> </div> <a class="anchor" id="gaf563d57ea9d576a94578368a3d2382c3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_top </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>config</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Creates a top level configuration node. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[out]</td><td class="paramname">config</td><td>Handle to the new node. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>The returned node is an empty compound node without a parent and without an id.</p> <dl class="section user"><dt>Errors:</dt><dd><dl> <dt>-ENOMEM</dt> <dd>Out of memory. </dd> </dl> </dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="gac87538403cb6f8125468a1af56f42e33"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_config_unref </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> * </td> <td class="paramname"><em>cfg</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Unreference the config tree. </p> <p>Decreases a reference counter of the given config tree, and eventually deletes the tree if all references are gone. This is the counterpart of <a class="el" href="group___config.html#gac87538403cb6f8125468a1af56f42e33" title="Unreference the config tree. ">snd_config_unref</a>.</p> <p>Also, the config taken via <a class="el" href="group___config.html#ga568fcf6f45808319725ac066714b25a8" title="Updates snd_config and takes its reference. ">snd_config_update_ref</a> must be unreferenced by this function, too.</p> <p>This function is supposed to be thread-safe. </p> </div> </div> <a class="anchor" id="ga41a3d2202cfb9016e33aa85ea70a4c9c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_update </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Updates <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> by rereading the global configuration files (if needed). </p> <dl class="section return"><dt>Returns</dt><dd>0 if <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> was up to date, 1 if <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> was updated, otherwise a negative error code.</dd></dl> <dl class="section warning"><dt>Warning</dt><dd>Whenever <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> is updated, all string pointers and configuration node handles previously obtained from it may become invalid. For safer operations, use <a class="el" href="group___config.html#ga568fcf6f45808319725ac066714b25a8" title="Updates snd_config and takes its reference. ">snd_config_update_ref</a> and release the config via <a class="el" href="group___config.html#gac87538403cb6f8125468a1af56f42e33" title="Unreference the config tree. ">snd_config_unref</a>.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd>Any errors encountered when parsing the input or returned by hooks or functions.</dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga8f781ac635a0233fb2f58766a83d65cd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_update_free </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> * </td> <td class="paramname"><em>update</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Frees a private update structure. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">update</td><td>The private update structure to free. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code. </dd></dl> </div> </div> <a class="anchor" id="ga51dbc0ff1d9b34d753706d09d768116b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_update_free_global </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Frees the global configuration tree in <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a>. </p> <dl class="section return"><dt>Returns</dt><dd>Zero if successful, otherwise a negative error code.</dd></dl> <p>This functions releases all resources of the global configuration tree, and sets <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> to <code>NULL</code>.</p> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga06e80976c3c00fdc786f9b213e5c40f7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_update_r </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>_top</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group___config.html#gab10b229189a94e3fcbac7f6ca5794cc0">snd_config_update_t</a> ** </td> <td class="paramname"><em>_update</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>cfgs</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Updates a configuration tree by rereading the configuration files (if needed). </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramdir">[in,out]</td><td class="paramname">_top</td><td>Address of the handle to the top-level node. </td></tr> <tr><td class="paramdir">[in,out]</td><td class="paramname">_update</td><td>Address of a pointer to private update information. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">cfgs</td><td>A list of configuration file names, delimited with ':'. If <code>cfgs</code> is <code>NULL</code>, the default global configuration file is used. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>0 if <em>_top</em> was up to date, 1 if the configuration files have been reread, otherwise a negative error code.</dd></dl> <p>The variables pointed to by <em>_top</em> and <em>_update</em> can be initialized to <code>NULL</code> before the first call to this function. The private update information holds information about all used configuration files that allows this function to detects changes to them; this data can be freed with <a class="el" href="group___config.html#ga8f781ac635a0233fb2f58766a83d65cd" title="Frees a private update structure. ">snd_config_update_free</a>.</p> <p>The global configuration files are specified in the environment variable <code>ALSA_CONFIG_PATH</code>.</p> <dl class="section warning"><dt>Warning</dt><dd>If the configuration tree is reread, all string pointers and configuration node handles previously obtained from this tree become invalid.</dd></dl> <dl class="section user"><dt>Errors:</dt><dd>Any errors encountered when parsing the input or returned by hooks or functions. </dd></dl> </div> </div> <a class="anchor" id="ga568fcf6f45808319725ac066714b25a8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_config_update_ref </td> <td>(</td> <td class="paramtype"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a> ** </td> <td class="paramname"><em>top</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Updates <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> and takes its reference. </p> <dl class="section return"><dt>Returns</dt><dd>0 if <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> was up to date, 1 if <a class="el" href="group___config.html#ga6cf7955d3a072d354dab4d7b536c7831" title="Configuration top-level node (the global configuration). ">snd_config</a> was updated, otherwise a negative error code.</dd></dl> <p>Unlike <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed). ">snd_config_update</a>, this function increases a reference counter so that the obtained tree won't be deleted until unreferenced by <a class="el" href="group___config.html#gac87538403cb6f8125468a1af56f42e33" title="Unreference the config tree. ">snd_config_unref</a>.</p> <p>This function is supposed to be thread-safe. </p> </div> </div> <a class="anchor" id="gaf35b51ab61fd7ea628ab088a1b444aa4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int snd_names_list </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>iface</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">snd_devname_t ** </td> <td class="paramname"><em>list</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>This function is unimplemented. </p> <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Since 1.0.14 </dd></dl> </div> </div> <a class="anchor" id="ga665741321b3c1c3f07a6eeb969406cb8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void snd_names_list_free </td> <td>(</td> <td class="paramtype">snd_devname_t * </td> <td class="paramname"><em>list</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>This function is unimplemented. </p> <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Since 1.0.14 </dd></dl> </div> </div> <h2 class="groupheader">Variable Documentation</h2> <a class="anchor" id="ga6cf7955d3a072d354dab4d7b536c7831"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a>* snd_config</td> </tr> </table> </div><div class="memdoc"> <p>Configuration top-level node (the global configuration). </p> <p>This variable contains a handle to the top-level configuration node, as loaded from global configuration file.</p> <p>This variable is initialized or updated by <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed). ">snd_config_update</a>. Functions like <a class="el" href="group___p_c_m.html#ga8340c7dc0ac37f37afe5e7c21d6c528b" title="Opens a PCM. ">snd_pcm_open</a> (that use a device name from the global configuration) automatically call <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed). ">snd_config_update</a>. Before the first call to <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed). ">snd_config_update</a>, this variable is <code>NULL</code>.</p> <p>The global configuration files are specified in the environment variable <code>ALSA_CONFIG_PATH</code>. If this is not set, the default value is "/usr/share/alsa/alsa.conf".</p> <dl class="section warning"><dt>Warning</dt><dd>Whenever the configuration tree is updated, all string pointers and configuration node handles previously obtained from this variable may become invalid.</dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> <a class="anchor" id="ga6cf7955d3a072d354dab4d7b536c7831"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group___config.html#ga1c20905af775ae77d04d1a5696f67985">snd_config_t</a>* snd_config = NULL</td> </tr> </table> </div><div class="memdoc"> <p>Configuration top-level node (the global configuration). </p> <p>This variable contains a handle to the top-level configuration node, as loaded from global configuration file.</p> <p>This variable is initialized or updated by <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed). ">snd_config_update</a>. Functions like <a class="el" href="group___p_c_m.html#ga8340c7dc0ac37f37afe5e7c21d6c528b" title="Opens a PCM. ">snd_pcm_open</a> (that use a device name from the global configuration) automatically call <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed). ">snd_config_update</a>. Before the first call to <a class="el" href="group___config.html#ga41a3d2202cfb9016e33aa85ea70a4c9c" title="Updates snd_config by rereading the global configuration files (if needed). ">snd_config_update</a>, this variable is <code>NULL</code>.</p> <p>The global configuration files are specified in the environment variable <code>ALSA_CONFIG_PATH</code>. If this is not set, the default value is "/usr/share/alsa/alsa.conf".</p> <dl class="section warning"><dt>Warning</dt><dd>Whenever the configuration tree is updated, all string pointers and configuration node handles previously obtained from this variable may become invalid.</dd></dl> <dl class="section user"><dt>Conforming to:</dt><dd>LSB 3.2 </dd></dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>