mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-19 08:13:21 +00:00
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>
This commit is contained in:
parent
48703584ce
commit
ec959028d1
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=419927
@ -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 \
|
||||
|
58
audio/libao/files/patch-src_plugins_sndio_ao__sndio.c
Normal file
58
audio/libao/files/patch-src_plugins_sndio_ao__sndio.c
Normal file
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user