0. 前言
本文主要介绍alsa-lib配置文件相关代码的分析内容。
1. 配置文件的路径
在alsa-lib中,函数 snd_config_topdir 用于获取配置文件的路径,有两个方法可以进行配置:
- 使用环境变量 ALSA_CONFIG_DIR 进行配置。
- 在生成configure时,使用 –with-configdir=dir 进行配置。
默认的路径为 $prefix/share/alsa 。
2. 相关文档
Configuration files
需要注意以下几点:
- 数组可以等价于复合结构,alsa-lib的代码最终会把配置文件中的数组分解为等价的复合结构。比如:
a [
"first"
"second"
]
等价于
a {
0 "first"
1 "second"
}
“.”可以看做C++中的作用域符号。
操作模式前缀符号:
“+”: 默认配置,如果节点不存在则create;如果节点存在且类型一致,则merge.
“-“: 如果节点存在且类型一致,则merge.
“?”: 如果节点已经存在则不要覆盖.
“!”: 覆盖,即不检查节点类型的条件下执行