diff -urN ices-0.4.orig/src/in_flac.c ices-0.4/src/in_flac.c --- ices-0.4.orig/src/in_flac.c 2004-07-31 20:52:24 +0300 +++ ices-0.4/src/in_flac.c 2007-02-20 16:24:31 +0200 @@ -26,6 +26,13 @@ #include +/* by LEGACY_FLAC we mean pre-1.1.3, before FLAC__SeekableStreamDecoder was merged into FLAC__StreamDecoder */ +#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 +#define LEGACY_FLAC +#else +#undef LEGACY_FLAC +#endif + /* -- data structures -- */ typedef struct { FLAC__StreamDecoder* decoder; @@ -76,10 +83,12 @@ return -1; } +#ifdef LEGACY_FLAC FLAC__stream_decoder_set_read_callback(decoder, flac_read_cb); FLAC__stream_decoder_set_write_callback(decoder, flac_write_cb); FLAC__stream_decoder_set_metadata_callback(decoder, flac_metadata_cb); FLAC__stream_decoder_set_error_callback(decoder, flac_error_cb); +#endif FLAC__stream_decoder_set_metadata_respond(decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT); @@ -87,7 +96,9 @@ ices_log_error ("Malloc failed in ices_flac_open"); goto errDecoder; } +#ifdef LEGACY_FLAC FLAC__stream_decoder_set_client_data(decoder, self); +#endif flac_data->decoder = decoder; flac_data->parsed = 0; @@ -96,7 +107,11 @@ self->data = flac_data; +#ifdef LEGACY_FLAC switch (FLAC__stream_decoder_init(decoder)) { +#else + switch (FLAC__stream_decoder_init_stream(decoder, flac_read_cb, NULL, NULL, NULL, NULL, flac_write_cb, flac_metadata_cb, flac_error_cb, self)) { +#endif case FLAC__STREAM_DECODER_SEARCH_FOR_METADATA: break; case FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR: