git: c29ec8917b01 - main - audio/sdl_audiolib: add port: Audio decoding, resampling and mixing library for SDL

From: Dmitry Marakasov <amdmi3_at_FreeBSD.org>
Date: Thu, 04 Aug 2022 21:01:42 UTC
The branch main has been updated by amdmi3:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c29ec8917b012505e5f96392502bf7ae62bbae17

commit c29ec8917b012505e5f96392502bf7ae62bbae17
Author:     Dmitry Marakasov <amdmi3@FreeBSD.org>
AuthorDate: 2022-08-04 13:10:40 +0000
Commit:     Dmitry Marakasov <amdmi3@FreeBSD.org>
CommitDate: 2022-08-04 21:00:46 +0000

    audio/sdl_audiolib: add port: Audio decoding, resampling and mixing library for SDL
    
    This is a small and simple to use C++ library for playing various
    audio formats. It is a thin (-ish) wrapper around existing resampling
    (like SRC or SoX) and decoding libraries (like libmpg123 or libvorbis.)
    
    It was written as a replacement for SDL_mixer, due to SDL_mixer's
    lack of multiple music streams, limited audio format support and
    poor resampling quality.
    
    WWW: https://github.com/realnc/SDL_audiolib
---
 audio/Makefile               |  1 +
 audio/sdl_audiolib/Makefile  | 82 ++++++++++++++++++++++++++++++++++++++++++++
 audio/sdl_audiolib/distinfo  |  3 ++
 audio/sdl_audiolib/pkg-descr |  9 +++++
 audio/sdl_audiolib/pkg-plist | 30 ++++++++++++++++
 5 files changed, 125 insertions(+)

diff --git a/audio/Makefile b/audio/Makefile
index 2d4bf717cc7e..6304bb8d72f8 100644
--- a/audio/Makefile
+++ b/audio/Makefile
@@ -711,6 +711,7 @@
     SUBDIR += screcord-lv2
     SUBDIR += sdl2_mixer
     SUBDIR += sdl2_sound
+    SUBDIR += sdl_audiolib
     SUBDIR += sdl_mixer
     SUBDIR += sdl_sound
     SUBDIR += sfizz
diff --git a/audio/sdl_audiolib/Makefile b/audio/sdl_audiolib/Makefile
new file mode 100644
index 000000000000..3789d11219e4
--- /dev/null
+++ b/audio/sdl_audiolib/Makefile
@@ -0,0 +1,82 @@
+PORTNAME=	sdl_audiolib
+PORTVERSION=	git20220713
+CATEGORIES=	audio
+
+MAINTAINER=	amdmi3@FreeBSD.org
+COMMENT=	Audio decoding, resampling and mixing library for SDL
+
+LICENSE=	LGPL3+
+LICENSE_FILE=	${WRKSRC}/COPYING.LESSER
+
+LIB_DEPENDS=	libfmt.so:devel/libfmt
+
+USES=		cmake pkgconfig sdl
+USE_GITHUB=	yes
+GH_ACCOUNT=	realnc
+GH_PROJECT=	SDL_audiolib
+GH_TAGNAME=	cc1bb6a
+USE_SDL=	sdl2
+USE_LDCONFIG=	yes
+CMAKE_ON=	WITH_SYSTEM_FMTLIB
+CMAKE_OFF=	USE_DEC_BASSMIDI USE_DEC_ADLMIDI  # not in ports (yet)?
+
+PORTDOCS=	*
+
+OPTIONS_DEFINE=			DOCS
+OPTIONS_GROUP=			RESAMPLERS DECODERS
+OPTIONS_GROUP_RESAMPLERS=	SAMPLERATE SOXR
+OPTIONS_GROUP_DECODERS=		OPENMPT XMP MODPLUG MPG123 SNDFILE VORBIS OPUS FLAC MUSEPACK FLUIDSYNTH WILDMIDI
+OPTIONS_DEFAULT=	${OPTIONS_GROUP_RESAMPLERS} ${OPTIONS_GROUP_DECODERS}
+OPTIONS_SUB=		yes
+
+RESAMPLERS_DESC=	Resamplers
+
+SAMPLERATE_LIB_DEPENDS=	libsamplerate.so:audio/libsamplerate
+SAMPLERATE_CMAKE_BOOL=	USE_RESAMP_SRC
+
+SOXR_LIB_DEPENDS=	libsoxr.so:audio/libsoxr
+SOXR_CMAKE_BOOL=	USE_RESAMP_SOXR
+
+DECODERS_DESC=		Decoders
+
+OPENMPT_DESC=		OpenMPT MOD decoder
+OPENMPT_LIB_DEPENDS=	libopenmpt.so:audio/libopenmpt
+OPENMPT_CMAKE_BOOL=	USE_DEC_OPENMPT
+
+XMP_DESC=		XMP MOD decoder
+XMP_LIB_DEPENDS=	libxmp.so:audio/libxmp
+XMP_CMAKE_BOOL=		USE_DEC_XMP
+
+MODPLUG_LIB_DEPENDS=	libmodplug.so:audio/libmodplug
+MODPLUG_CMAKE_BOOL=	USE_DEC_MODPLUG
+
+MPG123_LIB_DEPENDS=	libmpg123.so:audio/mpg123
+MPG123_CMAKE_BOOL=	USE_DEC_MPG123
+
+SNDFILE_LIB_DEPENDS=	libsndfile.so:audio/libsndfile
+SNDFILE_CMAKE_BOOL=	USE_DEC_SNDFILE
+
+VORBIS_LIB_DEPENDS=	libvorbisfile.so:audio/libvorbis
+VORBIS_CMAKE_BOOL=	USE_DEC_LIBVORBIS
+
+OPUS_LIB_DEPENDS=	libopusfile.so:audio/opusfile
+OPUS_CMAKE_BOOL=	USE_DEC_LIBOPUSFILE
+
+FLAC_LIB_DEPENDS=	libFLAC.so:audio/flac
+FLAC_CMAKE_BOOL=	USE_DEC_FLAC
+
+MUSEPACK_LIB_DEPENDS=	libmpcdec.so:audio/musepack
+MUSEPACK_CMAKE_BOOL=	USE_DEC_MUSEPACK
+
+FLUIDSYNTH_LIB_DEPENDS=	libfluidsynth.so:audio/fluidsynth
+FLUIDSYNTH_CMAKE_BOOL=	USE_DEC_FLUIDSYNTH
+
+WILDMIDI_DESC=		WildMIDI MIDI decoder
+WILDMIDI_LIB_DEPENDS=	libWildMidi.so:audio/wildmidi
+WILDMIDI_CMAKE_BOOL=	USE_DEC_WILDMIDI
+
+post-install-DOCS-on:
+	@${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}/
+
+.include <bsd.port.mk>
diff --git a/audio/sdl_audiolib/distinfo b/audio/sdl_audiolib/distinfo
new file mode 100644
index 000000000000..3e2f777452ae
--- /dev/null
+++ b/audio/sdl_audiolib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1659555002
+SHA256 (realnc-SDL_audiolib-git20220713-cc1bb6a_GH0.tar.gz) = a9a7eaa0a211921e588b619a94f0b6631dc6722998ca96511c637c096c83bf0a
+SIZE (realnc-SDL_audiolib-git20220713-cc1bb6a_GH0.tar.gz) = 1139627
diff --git a/audio/sdl_audiolib/pkg-descr b/audio/sdl_audiolib/pkg-descr
new file mode 100644
index 000000000000..600524b16249
--- /dev/null
+++ b/audio/sdl_audiolib/pkg-descr
@@ -0,0 +1,9 @@
+This is a small and simple to use C++ library for playing various
+audio formats. It is a thin (-ish) wrapper around existing resampling
+(like SRC or SoX) and decoding libraries (like libmpg123 or libvorbis.)
+
+It was written as a replacement for SDL_mixer, due to SDL_mixer's
+lack of multiple music streams, limited audio format support and
+poor resampling quality.
+
+WWW: https://github.com/realnc/SDL_audiolib
diff --git a/audio/sdl_audiolib/pkg-plist b/audio/sdl_audiolib/pkg-plist
new file mode 100644
index 000000000000..ee0e48d99808
--- /dev/null
+++ b/audio/sdl_audiolib/pkg-plist
@@ -0,0 +1,30 @@
+include/SDL_audiolib/aulib.h
+include/SDL_audiolib/aulib_export.h
+include/SDL_audiolib/aulib_global.h
+include/SDL_audiolib/aulib_version.h
+include/SDL_audiolib/Aulib/Decoder.h
+include/SDL_audiolib/Aulib/DecoderDrflac.h
+include/SDL_audiolib/Aulib/DecoderDrmp3.h
+include/SDL_audiolib/Aulib/DecoderDrwav.h
+%%FLAC%%include/SDL_audiolib/Aulib/DecoderFlac.h
+%%FLUIDSYNTH%%include/SDL_audiolib/Aulib/DecoderFluidsynth.h
+%%MODPLUG%%include/SDL_audiolib/Aulib/DecoderModplug.h
+%%MPG123%%include/SDL_audiolib/Aulib/DecoderMpg123.h
+%%MUSEPACK%%include/SDL_audiolib/Aulib/DecoderMusepack.h
+%%OPENMPT%%include/SDL_audiolib/Aulib/DecoderOpenmpt.h
+%%OPUS%%include/SDL_audiolib/Aulib/DecoderOpus.h
+%%SNDFILE%%include/SDL_audiolib/Aulib/DecoderSndfile.h
+%%VORBIS%%include/SDL_audiolib/Aulib/DecoderVorbis.h
+%%WILDMIDI%%include/SDL_audiolib/Aulib/DecoderWildmidi.h
+%%XMP%%include/SDL_audiolib/Aulib/DecoderXmp.h
+include/SDL_audiolib/Aulib/Processor.h
+include/SDL_audiolib/Aulib/Resampler.h
+include/SDL_audiolib/Aulib/ResamplerSdl.h
+%%SOXR%%include/SDL_audiolib/Aulib/ResamplerSox.h
+include/SDL_audiolib/Aulib/ResamplerSpeex.h
+%%SAMPLERATE%%include/SDL_audiolib/Aulib/ResamplerSrc.h
+include/SDL_audiolib/Aulib/Stream.h
+lib/libSDL_audiolib.so
+lib/libSDL_audiolib.so.0
+lib/libSDL_audiolib.so.0.0.0
+libdata/pkgconfig/SDL_audiolib.pc