summaryrefslogtreecommitdiff
path: root/extra/ossp
diff options
context:
space:
mode:
Diffstat (limited to 'extra/ossp')
-rw-r--r--extra/ossp/PKGBUILD43
-rw-r--r--extra/ossp/osspd.conf.d10
-rwxr-xr-xextra/ossp/osspd.rc.d59
3 files changed, 112 insertions, 0 deletions
diff --git a/extra/ossp/PKGBUILD b/extra/ossp/PKGBUILD
new file mode 100644
index 000000000..964013d1c
--- /dev/null
+++ b/extra/ossp/PKGBUILD
@@ -0,0 +1,43 @@
+# $Id: PKGBUILD 99925 2010-11-19 14:16:05Z heftig $
+# Maintainer: Jan "heftig" Steffens <jan.steffens@gmail.com>
+# Contributor: Jonathan Liu <net147@gmail.com>
+
+pkgname=ossp
+pkgver=1.3.2
+pkgrel=10
+pkgdesc="Emulate OSS device using CUSE"
+arch=(i686 x86_64)
+url="http://sourceforge.net/projects/osspd"
+license=(GPL2)
+depends=('fuse>=2.8.0' 'kernel26>=2.6.35-2')
+makedepends=(libpulse alsa-lib)
+optdepends=("libpulse: PulseAudio backend"
+ "alsa-lib: ALSA backend")
+backup=(etc/conf.d/osspd)
+source=("http://downloads.sourceforge.net/project/osspd/${pkgname}-${pkgver}.tar.gz"
+ osspd.rc.d osspd.conf.d)
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ make DESTDIR="$pkgdir" prefix=/usr UDEVDIR=/lib/udev/rules.d install
+
+ # Make compatible with udev ACLs
+ sed -e 's/GROUP="audio"/SUBSYSTEM=="cuse", MODE="0666"/' \
+ -i "$pkgdir/lib/udev/rules.d/98-osscuse.rules"
+
+ install -D -m644 README "$pkgdir/usr/share/doc/$pkgname/README"
+
+ install -D -m755 "$srcdir/osspd.rc.d" "$pkgdir/etc/rc.d/osspd"
+ install -D -m644 "$srcdir/osspd.conf.d" "$pkgdir/etc/conf.d/osspd"
+}
+
+md5sums=('ee2d8c894de2fa4eb3291804fbc7df45'
+ '69b745e0c499cd50019266a99082ce8b'
+ '5a5a3db1bb3c98d48d4794613cf12ef0')
diff --git a/extra/ossp/osspd.conf.d b/extra/ossp/osspd.conf.d
new file mode 100644
index 000000000..05d0d06c6
--- /dev/null
+++ b/extra/ossp/osspd.conf.d
@@ -0,0 +1,10 @@
+# Define the audio backend to use here.
+# Leave undefined to autodetect.
+
+# Use Pulseaudio slave
+#DSP_SLAVE=/usr/sbin/ossp-padsp
+
+# Use ALSA slave
+#DSP_SLAVE=/usr/sbin/ossp-alsap
+
+# vim:set ft=sh:
diff --git a/extra/ossp/osspd.rc.d b/extra/ossp/osspd.rc.d
new file mode 100755
index 000000000..78d7602ae
--- /dev/null
+++ b/extra/ossp/osspd.rc.d
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+. /etc/conf.d/osspd
+
+
+if [[ -z "$DSP_SLAVE" ]]; then
+ # Autodetect
+ if [[ -x /usr/bin/pulseaudio ]]; then
+ DSP_SLAVE="/usr/sbin/ossp-padsp"
+ else
+ DSP_SLAVE="/usr/sbin/ossp-alsap"
+ fi
+fi
+
+preclaim_oss=/sys/module/soundcore/parameters/preclaim_oss
+
+PID=`pidof -o %PPID /usr/sbin/osspd`
+case "$1" in
+ start)
+ stat_busy "Starting OSS userspace bridge"
+ if [ -z "$PID" ]; then
+ if [[ -r $preclaim_oss && "$(cat $preclaim_oss)" -eq 1 ]]; then
+ echo "Must boot with soundcore.preclaim_oss=0"
+ stat_die
+ fi
+ modprobe cuse &>/dev/null
+ modprobe -r snd-pcm-oss snd-mixer-oss &>/dev/null
+ sleep 0.1
+ /usr/sbin/osspd --dsp-slave="$DSP_SLAVE"
+ fi
+ if [ -n "$PID" -o $? -gt 0 ]; then
+ stat_fail
+ else
+ add_daemon osspd
+ stat_done
+ fi
+ ;;
+ stop)
+ stat_busy "Stopping OSS userspace bridge"
+ [ -n "$PID" ] && kill $PID &>/dev/null
+ if [ $? -gt 0 ]; then
+ stat_fail
+ else
+ rm_daemon osspd
+ stat_done
+ fi
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ *)
+ echo "usage: $0 {start|stop|restart}"
+esac
+
+# vim:set ft=sh: