summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2007-07-26 19:55:51 +0000
committerLennart Poettering <lennart@poettering.net>2007-07-26 19:55:51 +0000
commit8e4660a0b5b34ae465fa3765c68dd8f2d276956f (patch)
treea98db04849da2d7f03a0669e88895298bf72d3df
parentc936e53fa28381123bf3381f9c9c7d253082451f (diff)
Disable memory mapping if we open the device in O_WRONLY. Unfortunately we cannot do mmap() in Linux without opening the device for reading as well.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1549 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r--src/modules/module-oss.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/modules/module-oss.c b/src/modules/module-oss.c
index b210c17c..96e0c3ce 100644
--- a/src/modules/module-oss.c
+++ b/src/modules/module-oss.c
@@ -1078,10 +1078,15 @@ int pa__init(pa_core *c, pa_module*m) {
goto fail;
if (use_mmap && (!(caps & DSP_CAP_MMAP) || !(caps & DSP_CAP_TRIGGER))) {
- pa_log("OSS device not mmap capable, falling back to UNIX read/write mode");
+ pa_log_info("OSS device not mmap capable, falling back to UNIX read/write mode.");
use_mmap = 0;
}
+ if (use_mmap && mode == O_WRONLY) {
+ pa_log_info("Device opened for write only, cannot do memory mapping, falling back to UNIX read/write mode.");
+ use_mmap = 0;
+ }
+
if (pa_oss_get_hw_description(p, hwdesc, sizeof(hwdesc)) >= 0)
pa_log_info("Hardware name is '%s'.", hwdesc);
else