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