From 67db4cf68dbdb364c4dee1599294d7701f3c3b0a Mon Sep 17 00:00:00 2001 From: root Date: Tue, 5 Jun 2012 00:01:46 +0000 Subject: Tue Jun 5 00:01:46 UTC 2012 --- extra/sox/PKGBUILD | 11 +++-- extra/sox/sox_default_audio_driver_fallback.patch | 51 +++++++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 extra/sox/sox_default_audio_driver_fallback.patch (limited to 'extra/sox') diff --git a/extra/sox/PKGBUILD b/extra/sox/PKGBUILD index 132a89cdf..20b0ccc7e 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 pkgname=sox pkgver=14.4.0 -pkgrel=1 +pkgrel=2 pkgdesc="The Swiss Army knife of sound processing tools" arch=('i686' 'x86_64') 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); -- cgit v1.2.3-54-g00ecf