[arch-commits] Commit in sox/trunk (PKGBUILD sox_default_audio_driver_fallback.patch)

Eric Bélanger eric at archlinux.org
Sun Jun 3 04:02:08 UTC 2012


    Date: Sunday, June 3, 2012 @ 00:02:07
  Author: eric
Revision: 160645

upgpkg: sox 14.4.0-2

Add default audio driver fallback (close FS#29524)

Added:
  sox/trunk/sox_default_audio_driver_fallback.patch
Modified:
  sox/trunk/PKGBUILD

-----------------------------------------+
 PKGBUILD                                |    9 +++--
 sox_default_audio_driver_fallback.patch |   51 ++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-06-02 23:55:03 UTC (rev 160644)
+++ PKGBUILD	2012-06-03 04:02:07 UTC (rev 160645)
@@ -3,7 +3,7 @@
 
 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 @@
             '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"

Added: sox_default_audio_driver_fallback.patch
===================================================================
--- sox_default_audio_driver_fallback.patch	                        (rev 0)
+++ sox_default_audio_driver_fallback.patch	2012-06-03 04:02:07 UTC (rev 160645)
@@ -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);




More information about the arch-commits mailing list