From d62e2577add650f603546a013d65400e4e37de4a Mon Sep 17 00:00:00 2001
From: Britney Fransen <brfransen@gmail.com>
Date: Sat, 16 Jan 2016 22:42:03 +0000
Subject: sdl_sound: initial inclusion. dep of openal

---
 abs/extra/sdl_sound/PKGBUILD   |  32 +++++++++++
 abs/extra/sdl_sound/flac.patch | 126 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 158 insertions(+)
 create mode 100644 abs/extra/sdl_sound/PKGBUILD
 create mode 100644 abs/extra/sdl_sound/flac.patch

diff --git a/abs/extra/sdl_sound/PKGBUILD b/abs/extra/sdl_sound/PKGBUILD
new file mode 100644
index 0000000..28ee210
--- /dev/null
+++ b/abs/extra/sdl_sound/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
+
+pkgname=sdl_sound
+pkgver=1.0.3
+pkgrel=5
+pkgdesc="A library to decode several popular sound file formats, such as .WAV and .MP3"
+arch=('i686' 'x86_64')
+url="http://icculus.org/SDL_sound/"
+license=('LGPL')
+depends=('sdl' 'libmikmod' 'libvorbis' 'flac' 'speex' 'smpeg')
+source=(http://icculus.org/SDL_sound/downloads/SDL_sound-$pkgver.tar.gz 
+        flac.patch)
+md5sums=('aa09cd52df85d29bee87a664424c94b5'
+         '302aa9dc94cc71dd3339ca3177d36e1c')
+
+build() {
+  cd ${srcdir}/SDL_sound-${pkgver}
+
+  CFLAGS="$CFLAGS -I/usr/include/smpeg" \
+  CXXFLAGS="$CXXFLAGS -I/usr/include/smpeg" \
+  ./configure --prefix=/usr --disable-static
+
+  make
+}
+
+package() {
+  cd ${srcdir}/SDL_sound-${pkgver}
+  make DESTDIR=${pkgdir} install
+}
+
diff --git a/abs/extra/sdl_sound/flac.patch b/abs/extra/sdl_sound/flac.patch
new file mode 100644
index 0000000..d0ed491
--- /dev/null
+++ b/abs/extra/sdl_sound/flac.patch
@@ -0,0 +1,126 @@
+diff -u -r SDL_sound-1.0.1/configure.in SDL_sound-1.0.1-flac/configure.in
+--- SDL_sound-1.0.1/configure.in	2003-10-12 20:49:54.000000000 +0200
++++ SDL_sound-1.0.1-flac/configure.in	2006-12-11 20:43:46.546583251 +0100
+@@ -155,9 +155,12 @@
+ dnl  FLAC developers tend to break their API with every release, so we're
+ dnl  checking for the latest-and-greatest here so we don't have to support
+ dnl  obsolete versions.
++dnl Starting with FLAC 1.1.3:
++dnl   libFLAC supports Ogg FLAC (no more libOggFLAC) so we also need -logg
++dnl   the libFLAC .so version is also #defined in FLAC/export.h
+ 
+ dnl Hooray for shitty autoconf bugs!
+-x="C__seekable_stream_decoder_process_single"
++x="C__stream_decoder_process_single"
+ flcsym="FLA$x"
+ dnl Check for libFLAC
+ AC_ARG_ENABLE(flac,
+@@ -167,7 +170,7 @@
+   AC_CHECK_HEADER(FLAC/stream_decoder.h, have_flac_hdr=yes)
+   AC_CHECK_LIB(FLAC, $flcsym, have_flac_lib=yes)
+   if test x$have_flac_hdr = xyes -a x$have_flac_lib = xyes; then
+-    LIBS="$LIBS -lFLAC"
++    LIBS="$LIBS -lFLAC -logg"
+     AC_DEFINE(SOUND_SUPPORTS_FLAC)
+   fi
+ fi
+diff -u -r SDL_sound-1.0.1/decoders/flac.c SDL_sound-1.0.1-flac/decoders/flac.c
+--- SDL_sound-1.0.1/decoders/flac.c	2003-03-10 23:44:14.000000000 +0100
++++ SDL_sound-1.0.1-flac/decoders/flac.c	2006-12-11 20:43:57.880097062 +0100
+@@ -44,6 +44,16 @@
+ #define __SDL_SOUND_INTERNAL__
+ #include "SDL_sound_internal.h"
+ 
++#include <FLAC/export.h>
++
++/* FLAC 1.1.3 has FLAC_API_VERSION_CURRENT == 8 */
++#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8
++#define LEGACY_FLAC
++#else
++#undef LEGACY_FLAC
++#endif
++
++#ifdef LEGACY_FLAC
+ #include <FLAC/seekable_stream_decoder.h>
+ 
+ #define D_END_OF_STREAM               FLAC__SEEKABLE_STREAM_DECODER_END_OF_STREAM
+@@ -80,6 +90,34 @@
+ typedef FLAC__SeekableStreamDecoderSeekStatus   d_seek_status_t;
+ typedef FLAC__SeekableStreamDecoderTellStatus   d_tell_status_t;
+ typedef FLAC__SeekableStreamDecoderLengthStatus d_length_status_t;
++#else
++#include <FLAC/stream_decoder.h>
++
++#define D_END_OF_STREAM               FLAC__STREAM_DECODER_END_OF_STREAM
++
++#define d_new()                       FLAC__stream_decoder_new()
++#define d_process_metadata(x)         FLAC__stream_decoder_process_until_end_of_metadata(x)
++#define d_process_one_frame(x)        FLAC__stream_decoder_process_single(x)
++#define d_get_state(x)                FLAC__stream_decoder_get_state(x)
++#define d_finish(x)                   FLAC__stream_decoder_finish(x)
++#define d_delete(x)                   FLAC__stream_decoder_delete(x)
++
++typedef FLAC__StreamDecoder           decoder_t;
++typedef FLAC__StreamDecoderReadStatus d_read_status_t;
++
++#define D_SEEK_STATUS_OK              FLAC__STREAM_DECODER_SEEK_STATUS_OK
++#define D_SEEK_STATUS_ERROR           FLAC__STREAM_DECODER_SEEK_STATUS_ERROR
++#define D_TELL_STATUS_OK              FLAC__STREAM_DECODER_TELL_STATUS_OK
++#define D_TELL_STATUS_ERROR           FLAC__STREAM_DECODER_TELL_STATUS_ERROR
++#define D_LENGTH_STATUS_OK            FLAC__STREAM_DECODER_LENGTH_STATUS_OK
++#define D_LENGTH_STATUS_ERROR         FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR
++
++#define d_seek_absolute(x, y)         FLAC__stream_decoder_seek_absolute(x, y)
++
++typedef FLAC__StreamDecoderSeekStatus   d_seek_status_t;
++typedef FLAC__StreamDecoderTellStatus   d_tell_status_t;
++typedef FLAC__StreamDecoderLengthStatus d_length_status_t;
++#endif
+ 
+ #define D_WRITE_CONTINUE     FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE
+ #define D_READ_END_OF_STREAM FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM
+@@ -141,9 +179,15 @@
+ } /* free_flac */
+ 
+ 
++#ifdef LEGACY_FLAC
+ static d_read_status_t read_callback(
+     const decoder_t *decoder, FLAC__byte buffer[],
+     unsigned int *bytes, void *client_data)
++#else
++static d_read_status_t read_callback(
++    const decoder_t *decoder, FLAC__byte buffer[],
++    size_t *bytes, void *client_data)
++#endif
+ {
+     flac_t *f = (flac_t *) client_data;
+     Uint32 retval;
+@@ -400,6 +444,7 @@
+         BAIL_MACRO(ERR_OUT_OF_MEMORY, 0);
+     } /* if */       
+ 
++#ifdef LEGACY_FLAC
+     d_set_read_callback(decoder, read_callback);
+     d_set_write_callback(decoder, write_callback);
+     d_set_metadata_callback(decoder, metadata_callback);
+@@ -410,6 +455,7 @@
+     d_set_eof_callback(decoder, eof_callback);
+ 
+     d_set_client_data(decoder, f);
++#endif
+ 
+     f->rw = internal->rw;
+     f->sample = sample;
+@@ -418,7 +464,12 @@
+     f->is_flac = 0 /* !!! FIXME: should be "has_extension", not "0". */;
+ 
+     internal->decoder_private = f;
++    /* really should check the init return value here: */
++#ifdef LEGACY_FLAC
+     d_init(decoder);
++#else
++    FLAC__stream_decoder_init_stream(decoder, read_callback, seek_callback, tell_callback, length_callback, eof_callback, write_callback, metadata_callback, error_callback, f);
++#endif
+ 
+     sample->flags = SOUND_SAMPLEFLAG_NONE;
+ 
-- 
cgit v0.12

