summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-03-17 16:11:57 +0100
committerTakashi Iwai <tiwai@suse.de>2008-03-17 16:11:57 +0100
commit87ae12214b5062ba2b05055b9a10e32a09c36fee (patch)
tree0b18ae752644cd252da92f325e0e43fb0b8298dd
parentfe95bc237a3dcefb32398b5b346ce8df1baa7231 (diff)
downloadalsa-lib-87ae12214b5062ba2b05055b9a10e32a09c36fee.tar.gz
Use defaults.pcm.file_format for the default file format of file plugin
Use "defaults.pcm.file_format" for the default file format of file plugin. It's set to "raw" as default for compatibility.
-rw-r--r--src/conf/alsa.conf11
-rw-r--r--src/pcm/pcm_file.c11
2 files changed, 20 insertions, 2 deletions
diff --git a/src/conf/alsa.conf b/src/conf/alsa.conf
index 53baedf1..db642597 100644
--- a/src/conf/alsa.conf
+++ b/src/conf/alsa.conf
@@ -96,6 +96,7 @@ defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
# truncate files via file or tee PCM
+defaults.pcm.file_format "raw"
defaults.pcm.file_truncate true
defaults.rawmidi.card 0
defaults.rawmidi.device 0
@@ -266,7 +267,10 @@ pcm.tee {
}
@args.FORMAT {
type string
- default raw
+ default {
+ @func refer
+ name defaults.pcm.file_format
+ }
}
type file
slave.pcm $SLAVE
@@ -285,7 +289,10 @@ pcm.file {
}
@args.FORMAT {
type string
- default raw
+ default {
+ @func refer
+ name defaults.pcm.file_format
+ }
}
type file
slave.pcm null
diff --git a/src/pcm/pcm_file.c b/src/pcm/pcm_file.c
index 74bcbf52..289a434c 100644
--- a/src/pcm/pcm_file.c
+++ b/src/pcm/pcm_file.c
@@ -733,6 +733,17 @@ int _snd_pcm_file_open(snd_pcm_t **pcmp, const char *name,
SNDERR("Unknown field %s", id);
return -EINVAL;
}
+ if (!format) {
+ snd_config_t *n;
+ /* read defaults */
+ if (snd_config_search(root, "defaults.pcm.file_format", &n) >= 0) {
+ err = snd_config_get_string(n, &format);
+ if (err < 0) {
+ SNDERR("Invalid file format");
+ return -EINVAL;
+ }
+ }
+ }
if (!slave) {
SNDERR("slave is not defined");
return -EINVAL;