summaryrefslogtreecommitdiffstats
path: root/src/modules/alsa/module-alsa-source.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-01-15 23:46:42 +0100
committerLennart Poettering <lennart@poettering.net>2009-01-15 23:46:42 +0100
commit4d4956ea2f8df5f770f2137d8576afc6e5f161dd (patch)
tree57b735d18eaf40647e181c167183283208a6cebf /src/modules/alsa/module-alsa-source.c
parent33c22b01022b0450aee011ddd9d6d2b19da74191 (diff)
Add SPDIF/HDMI ALSA devices and device descriptions to device search table
Diffstat (limited to 'src/modules/alsa/module-alsa-source.c')
-rw-r--r--src/modules/alsa/module-alsa-source.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/modules/alsa/module-alsa-source.c b/src/modules/alsa/module-alsa-source.c
index 901db01f..f89b6e2e 100644
--- a/src/modules/alsa/module-alsa-source.c
+++ b/src/modules/alsa/module-alsa-source.c
@@ -1087,6 +1087,7 @@ int pa__init(pa_module*m) {
pa_bool_t namereg_fail;
pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d;
pa_source_new_data data;
+ const char *profile_description = NULL, *profile_name = NULL;
snd_pcm_info_alloca(&pcm_info);
@@ -1167,7 +1168,7 @@ int pa__init(pa_module*m) {
&ss, &map,
SND_PCM_STREAM_CAPTURE,
&nfrags, &period_frames, tsched_frames,
- &b, &d)))
+ &b, &d, &profile_description, &profile_name)))
goto fail;
} else {
@@ -1185,6 +1186,9 @@ int pa__init(pa_module*m) {
pa_assert(u->device_name);
pa_log_info("Successfully opened device %s.", u->device_name);
+ if (profile_description)
+ pa_log_info("Selected configuration '%s' (%s).", profile_description, profile_name);
+
if (use_mmap && !b) {
pa_log_info("Device doesn't support mmap(), falling back to UNIX read/write mode.");
u->use_mmap = use_mmap = FALSE;
@@ -1268,6 +1272,11 @@ int pa__init(pa_module*m) {
pa_proplist_setf(data.proplist, PA_PROP_DEVICE_BUFFERING_FRAGMENT_SIZE, "%lu", (unsigned long) (period_frames * frame_size));
pa_proplist_sets(data.proplist, PA_PROP_DEVICE_ACCESS_MODE, u->use_tsched ? "mmap+timer" : (u->use_mmap ? "mmap" : "serial"));
+ if (profile_name)
+ pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_NAME, profile_name);
+ if (profile_description)
+ pa_proplist_sets(data.proplist, PA_PROP_DEVICE_PROFILE_DESCRIPTION, profile_description);
+
u->source = pa_source_new(m->core, &data, PA_SOURCE_HARDWARE|PA_SOURCE_LATENCY);
pa_source_new_data_done(&data);
pa_xfree(name_buf);