diff options
author | naddy <naddy@FreeBSD.org> | 2016-08-09 23:11:26 +0800 |
---|---|---|
committer | naddy <naddy@FreeBSD.org> | 2016-08-09 23:11:26 +0800 |
commit | 70795b1a0c80647c6fb8e4c1223cf3736cb451e7 (patch) | |
tree | 69b072b40eaa1573c7e48316e0504dfa6409ac05 | |
parent | 4d51eddcf7e7565d4b9e78d3589c3539878e0214 (diff) | |
download | freebsd-ports-graphics-70795b1a0c80647c6fb8e4c1223cf3736cb451e7.tar.gz freebsd-ports-graphics-70795b1a0c80647c6fb8e4c1223cf3736cb451e7.tar.zst freebsd-ports-graphics-70795b1a0c80647c6fb8e4c1223cf3736cb451e7.zip |
Enable sndio support in libao, based on the OpenBSD port.
Also add --disable-alsa to CONFIGURE_ARGS because without it the
port tries to link with libasound when it's installed.
PR: 211662
Submitted by: Tobias Kortkamp <t@tobik.me>
-rw-r--r-- | audio/libao/Makefile | 6 | ||||
-rw-r--r-- | audio/libao/files/patch-src_plugins_sndio_ao__sndio.c | 58 | ||||
-rw-r--r-- | audio/libao/pkg-plist | 1 |
3 files changed, 64 insertions, 1 deletions
diff --git a/audio/libao/Makefile b/audio/libao/Makefile index 28f6ea1bce0..6504ba2a1d1 100644 --- a/audio/libao/Makefile +++ b/audio/libao/Makefile @@ -16,13 +16,14 @@ USES= libtool pathfix pkgconfig USE_LDCONFIG= yes GNU_CONFIGURE= yes CONFIGURE_ARGS= --enable-static \ + --disable-alsa \ --disable-arts INSTALL_TARGET= install-strip # do not install MAKE_ARGS= ckport_DATA="" -OPTIONS_DEFINE= DOCS ESOUND NAS PULSEAUDIO +OPTIONS_DEFINE= DOCS ESOUND NAS PULSEAUDIO SNDIO OPTIONS_SUB= yes NAS_LIB_DEPENDS=libaudio.so:audio/nas @@ -34,6 +35,9 @@ PULSEAUDIO_CONFIGURE_ENABLE= pulse ESOUND_CONFIGURE_ENABLE=esd ESOUND_USE= GNOME=esound +SNDIO_LIB_DEPENDS= libsndio.so:audio/sndio +SNDIO_USES= localbase + post-patch: @${REINPLACE_CMD} -e 's|/etc/libao.conf|${PREFIX}&|' \ ${WRKSRC}/libao.conf.5 ${WRKSRC}/include/ao/ao_private.h \ diff --git a/audio/libao/files/patch-src_plugins_sndio_ao__sndio.c b/audio/libao/files/patch-src_plugins_sndio_ao__sndio.c new file mode 100644 index 00000000000..45b25feff31 --- /dev/null +++ b/audio/libao/files/patch-src_plugins_sndio_ao__sndio.c @@ -0,0 +1,58 @@ +$OpenBSD: patch-src_plugins_sndio_ao_sndio_c,v 1.3 2014/05/27 19:44:56 naddy Exp $ +--- src/plugins/sndio/ao_sndio.c.orig 2012-02-14 00:46:06 UTC ++++ src/plugins/sndio/ao_sndio.c +@@ -99,6 +99,7 @@ int ao_plugin_set_option(ao_device *devi + int ao_plugin_open(ao_device *device, ao_sample_format *format) + { + ao_sndio_internal *internal = (ao_sndio_internal *) device->internal; ++ struct sio_hdl *hdl; + struct sio_par par; + + if(!internal->dev && internal->id>=0){ +@@ -107,20 +108,26 @@ int ao_plugin_open(ao_device *device, ao + internal->dev = strdup(buf); + } + +- internal->hdl = sio_open(internal->dev, SIO_PLAY, 0); +- if (internal->hdl == NULL) ++ hdl = sio_open(internal->dev, SIO_PLAY, 0); ++ if (hdl == NULL) + return 0; ++ internal->hdl = hdl; + + sio_initpar(&par); + par.sig = 1; +- par.le = SIO_LE_NATIVE; ++ if (format->bits > 8) ++ par.le = device->client_byte_format == AO_FMT_LITTLE ? 1 : 0; + par.bits = format->bits; + par.rate = format->rate; + par.pchan = device->output_channels; +- if (!sio_setpar(internal->hdl, &par)) ++ if (!sio_setpar(hdl, &par)) + return 0; +- device->driver_byte_format = AO_FMT_NATIVE; +- if (!sio_start(internal->hdl)) ++ if (!sio_getpar(hdl, &par)) ++ return 0; ++ if (par.bits != format->bits) ++ return 0; ++ device->driver_byte_format = par.le ? AO_FMT_LITTLE : AO_FMT_BIG; ++ if (!sio_start(hdl)) + return 0; + + if(!device->inter_matrix){ +@@ -148,9 +155,10 @@ int ao_plugin_close(ao_device *device) + ao_sndio_internal *internal = (ao_sndio_internal *) device->internal; + struct sio_hdl *hdl = internal->hdl; + +- if(hdl) +- if (!sio_stop(hdl)) +- return 0; ++ if(hdl){ ++ sio_close(hdl); ++ internal->hdl = NULL; ++ } + return 1; + } + diff --git a/audio/libao/pkg-plist b/audio/libao/pkg-plist index 074df18fe34..b64961932e6 100644 --- a/audio/libao/pkg-plist +++ b/audio/libao/pkg-plist @@ -9,6 +9,7 @@ lib/ao/plugins-4/liboss.so %%ESOUND%%lib/ao/plugins-4/libesd.so %%NAS%%lib/ao/plugins-4/libnas.so %%PULSEAUDIO%%lib/ao/plugins-4/libpulse.so +%%SNDIO%%lib/ao/plugins-4/libsndio.so libdata/pkgconfig/ao.pc man/man5/libao.conf.5.gz share/aclocal/ao.m4 |