$NetBSD: patch-af,v 1.1 2007/01/12 20:32:48 wiz Exp $ --- src/sound/flac.c.orig 2004-06-25 23:22:33.000000000 +0000 +++ src/sound/flac.c @@ -47,6 +47,13 @@ #include "iolib.h" #include "sound_server.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 + /*---------------------------------------------------------------------------- -- Declaration ----------------------------------------------------------------------------*/ @@ -88,7 +95,12 @@ static void FLAC_error_callback(const FL */ static FLAC__StreamDecoderReadStatus FLAC_read_callback( const FLAC__StreamDecoder* stream, FLAC__byte buffer[], - unsigned int* bytes, void* user) +#ifdef LEGACY_FLAC + unsigned int* bytes, +#else + size_t* bytes, +#endif + void* user) { Sample* sample; FlacData* data; @@ -339,12 +351,21 @@ Sample* LoadFlac(const char* name, int f sample->Pos = 0; sample->User = data; +#ifdef LEGACY_FLAC FLAC__stream_decoder_set_read_callback(stream, FLAC_read_callback); FLAC__stream_decoder_set_write_callback(stream, FLAC_write_callback); FLAC__stream_decoder_set_metadata_callback(stream, FLAC_metadata_callback); FLAC__stream_decoder_set_error_callback(stream, FLAC_error_callback); FLAC__stream_decoder_set_client_data(stream, sample); FLAC__stream_decoder_init(stream); +#else + if(FLAC__stream_decoder_init_stream(stream, FLAC_read_callback, NULL, NULL, NULL, NULL, FLAC_write_callback, FLAC_metadata_callback, FLAC_error_callback, sample) != FLAC__STREAM_DECODER_INIT_STATUS_OK) { + FLAC__stream_decoder_delete(stream); + free(data); + free(sample); + return NULL; + } +#endif if (flags & PlayAudioStream) { sample->Buffer = malloc(SOUND_BUFFER_SIZE);