summaryrefslogtreecommitdiff
path: root/extra/sox
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@kiwwwi.com.ar>2012-06-05 10:41:44 -0300
committerNicolás Reynolds <fauno@kiwwwi.com.ar>2012-06-05 10:41:44 -0300
commit957557945e9be0a00d5153afc17f69ffe751426f (patch)
tree4d321dff70c4fdd1ee3fa5d64db0fdd0dc1dd2e8 /extra/sox
parentcbba2111ae585b17594535ec01f13bac66937331 (diff)
parent67db4cf68dbdb364c4dee1599294d7701f3c3b0a (diff)
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts: community/collectd/PKGBUILD community/exim/PKGBUILD community/nsd/PKGBUILD extra/phonon-vlc/PKGBUILD
Diffstat (limited to 'extra/sox')
-rw-r--r--extra/sox/PKGBUILD11
-rw-r--r--extra/sox/sox_default_audio_driver_fallback.patch51
2 files changed, 58 insertions, 4 deletions
diff --git a/extra/sox/PKGBUILD b/extra/sox/PKGBUILD
index 241dee6e1..f1265c490 100644
--- a/extra/sox/PKGBUILD
+++ b/extra/sox/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 156376 2012-04-17 19:41:18Z eric $
+# $Id: PKGBUILD 160646 2012-06-03 04:02:31Z eric $
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=sox
pkgver=14.4.0
-pkgrel=1
+pkgrel=2
pkgdesc="The Swiss Army knife of sound processing tools"
arch=('i686' 'x86_64' 'mips64el')
url="http://sox.sourceforge.net/"
@@ -17,11 +17,14 @@ optdepends=('libao: for ao plugin'
'wavpack: for wavpack plugin'
'libpulse: for pulse plugin')
options=('!libtool')
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('12dfc57e503ed4e18cedcac292cdae7982281978')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+ sox_default_audio_driver_fallback.patch)
+sha1sums=('12dfc57e503ed4e18cedcac292cdae7982281978'
+ 'ab304f1fc17269262dbc4977aa9b7e97ec805ae4')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p0 -i "${srcdir}/sox_default_audio_driver_fallback.patch"
sed -i 's|man1/sox.1 soxeffect.7|man1/sox.1.gz soxeffect.7.gz|' Makefile.in
./configure --prefix=/usr --sysconfdir=/etc \
--with-dyn-default --with-distro="Arch Linux"
diff --git a/extra/sox/sox_default_audio_driver_fallback.patch b/extra/sox/sox_default_audio_driver_fallback.patch
new file mode 100644
index 000000000..9f9060e17
--- /dev/null
+++ b/extra/sox/sox_default_audio_driver_fallback.patch
@@ -0,0 +1,51 @@
+--- src/sox.c.old 2012-05-06 22:45:45.380564154 -0400
++++ src/sox.c 2012-05-06 22:47:11.948248987 -0400
+@@ -2538,20 +2538,38 @@
+ return name? from_env? from_env : name : NULL;
+ }
+
++static char const * try_device(char const * name)
++{
++ sox_format_handler_t const * handler = sox_find_format(name, sox_false);
++ if (handler) {
++ sox_format_t format, * ft = &format;
++ memset(ft, 0, sizeof(*ft));
++ ft->filename = (char *)device_name(name);
++ ft->priv = lsx_calloc(1, handler->priv_size);
++ if (handler->startwrite(ft) == SOX_SUCCESS) {
++ handler->stopwrite(ft);
++ free(ft->priv);
++ return name;
++ }
++ free(ft->priv);
++ }
++ return NULL;
++}
++
+ static char const * set_default_device(file_t * f)
+ {
+ /* Default audio driver type in order of preference: */
+ if (!f->filetype) f->filetype = getenv("AUDIODRIVER");
+- if (!f->filetype && sox_find_format("coreaudio", sox_false)) f->filetype = "coreaudio";
+- if (!f->filetype && sox_find_format("pulseaudio" , sox_false)) f->filetype = "pulseaudio";
+- if (!f->filetype && sox_find_format("alsa", sox_false)) f->filetype = "alsa";
+- if (!f->filetype && sox_find_format("waveaudio" , sox_false)) f->filetype = "waveaudio";
+- if (!f->filetype && sox_find_format("sndio", sox_false)) f->filetype = "sndio";
+- if (!f->filetype && sox_find_format("oss" , sox_false)) f->filetype = "oss";
+- if (!f->filetype && sox_find_format("sunau",sox_false)) f->filetype = "sunau";
+- if (!f->filetype && sox_find_format("ao" , sox_false) && file_count) /*!rec*/
+- f->filetype = "ao";
+-
++ if (!f->filetype) f->filetype = try_device("coreaudio");
++ if (!f->filetype) f->filetype = try_device("pulseaudio");
++ if (!f->filetype) f->filetype = try_device("alsa");
++ if (!f->filetype) f->filetype = try_device("waveaudio");
++ if (!f->filetype) f->filetype = try_device("sndio");
++ if (!f->filetype) f->filetype = try_device("oss");
++ if (!f->filetype) f->filetype = try_device("sunau");
++ if (!f->filetype && file_count) /*!rec*/
++ f->filetype = try_device("ao");
++
+ if (!f->filetype) {
+ lsx_fail("Sorry, there is no default audio device configured");
+ exit(1);