summaryrefslogtreecommitdiffstats
path: root/src/modules/module-detect.c
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2006-02-20 12:42:28 +0000
committerPierre Ossman <ossman@cendio.se>2006-02-20 12:42:28 +0000
commitd1bc972e6955601836c476093cb07ba961e51738 (patch)
tree2e92e620a0b585e9f50a9ad124a55a0d8ca4946f /src/modules/module-detect.c
parent0eed96d7649d63a24c2a251b143d26a46ab91742 (diff)
Detect support for Solaris (/dev/audio).
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@516 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/modules/module-detect.c')
-rw-r--r--src/modules/module-detect.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/modules/module-detect.c b/src/modules/module-detect.c
index e325b22c..4c0cdb4b 100644
--- a/src/modules/module-detect.c
+++ b/src/modules/module-detect.c
@@ -171,6 +171,34 @@ static int detect_oss(pa_core *c, int just_one) {
}
#endif
+#ifdef HAVE_SOLARIS
+static int detect_solaris(pa_core *c, int just_one) {
+ struct stat s;
+ const char *dev;
+ char args[64];
+
+ dev = getenv("AUDIODEV");
+ if (!dev)
+ dev = "/dev/audio";
+
+ if (stat(dev, &s) < 0) {
+ if (errno != ENOENT)
+ pa_log_error(__FILE__": failed to open device %s: %s\n", dev, strerror(errno));
+ return -1;
+ }
+
+ if (!S_ISCHR(s))
+ return 0;
+
+ snprintf(args, sizeof(args), "device=%s", dev);
+
+ if (!pa_module_load(c, "module-solaris", args))
+ return 0;
+
+ return 1;
+}
+#endif
+
int pa__init(pa_core *c, pa_module*m) {
int just_one = 0, n = 0;
pa_modargs *ma;
@@ -199,6 +227,9 @@ int pa__init(pa_core *c, pa_module*m) {
#if HAVE_OSS
if ((n = detect_oss(c, just_one)) <= 0)
#endif
+#if HAVE_SOLARIS
+ if ((n = detect_solaris(c, just_one)) <= 0)
+#endif
{
pa_log_warn(__FILE__": failed to detect any sound hardware.\n");
goto fail;