Add SPDIF/HDMI ALSA devices and device descriptions to device search table

This commit is contained in:
Lennart Poettering 2009-01-15 23:46:42 +01:00
parent 33c22b0102
commit 4d4956ea2f
5 changed files with 189 additions and 78 deletions

View file

@ -1253,6 +1253,7 @@ int pa__init(pa_module*m) {
pa_bool_t use_mmap = TRUE, b, use_tsched = TRUE, d;
pa_usec_t usec;
pa_sink_new_data data;
const char *profile_description = NULL, *profile_name = NULL;
snd_pcm_info_alloca(&pcm_info);
@ -1338,7 +1339,7 @@ int pa__init(pa_module*m) {
&ss, &map,
SND_PCM_STREAM_PLAYBACK,
&nfrags, &period_frames, tsched_frames,
&b, &d)))
&b, &d, &profile_description, &profile_name)))
goto fail;
@ -1358,6 +1359,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;
@ -1441,6 +1445,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->sink = pa_sink_new(m->core, &data, PA_SINK_HARDWARE|PA_SINK_LATENCY);
pa_sink_new_data_done(&data);
pa_xfree(name_buf);