4de0c3b
Fix API compatibility with newer FLAC.
4de0c3b
Taken from ArchLinux package.
4de0c3b
4de0c3b
--- src/lib/FLACFile.cpp.old	2007-02-11 20:12:34.000000000 +0100
4de0c3b
+++ src/lib/FLACFile.cpp	2007-02-11 20:18:25.000000000 +0100
4de0c3b
@@ -33,6 +33,13 @@
4de0c3b
 //#include "FLAC/file_decoder.h"
4de0c3b
 #include <FLAC++/all.h>
4de0c3b
 
4de0c3b
+#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8
4de0c3b
+#define LEGACY_FLAC
4de0c3b
+#else
4de0c3b
+#undef LEGACY_FLAC
4de0c3b
+#endif
4de0c3b
+
4de0c3b
+
4de0c3b
 /// Reads a FLAC file...not optimized yet
4de0c3b
 class FLACFile_real : public FLAC::Decoder::File, public Object
4de0c3b
 {
4de0c3b
@@ -164,16 +171,28 @@
4de0c3b
 	}
4de0c3b
 
4de0c3b
 	set_metadata_ignore_all();
4de0c3b
+
4de0c3b
+#ifdef LEGACY_FLAC
4de0c3b
 	set_filename( sFilename.c_str() );
4de0c3b
 
4de0c3b
 	State s=init();
4de0c3b
 	if( s != FLAC__FILE_DECODER_OK ) {
4de0c3b
+#else
4de0c3b
+	FLAC__StreamDecoderInitStatus s=init(sFilename.c_str() );
4de0c3b
+	if(s!=FLAC__STREAM_DECODER_INIT_STATUS_OK) {
4de0c3b
+#endif
4de0c3b
 		errorLog( "[load] Error in init()" );
4de0c3b
 	}
4de0c3b
 
4de0c3b
+#ifdef LEGACY_FLAC
4de0c3b
 	if ( process_until_end_of_file() == false ) {
4de0c3b
 		errorLog( "[load] Error in process_until_end_of_file()" );
4de0c3b
 	}
4de0c3b
+#else
4de0c3b
+	if ( process_until_end_of_stream() == false ) {
4de0c3b
+		errorLog( "[load] Error in process_until_end_of_stream()" );
4de0c3b
+	}
4de0c3b
+#endif
4de0c3b
 }
4de0c3b
 
4de0c3b