diff -Naur audacity-src-1.3.3-beta.orig/acinclude.m4 audacity-src-1.3.3-beta/acinclude.m4 --- audacity-src-1.3.3-beta.orig/acinclude.m4 2007-05-18 13:56:02.000000000 +0900 +++ audacity-src-1.3.3-beta/acinclude.m4 2007-05-19 13:37:01.000000000 +0900 @@ -479,7 +479,7 @@ dnl See if FLAC is installed in the system AC_CHECK_LIB(FLAC, - FLAC__file_decoder_new, + FLAC__stream_decoder_new, lib_found="yes", lib_found="no", -lFLAC++ -lFLAC) diff -Naur audacity-src-1.3.3-beta.orig/src/export/ExportFLAC.cpp audacity-src-1.3.3-beta/src/export/ExportFLAC.cpp --- audacity-src-1.3.3-beta.orig/src/export/ExportFLAC.cpp 2007-05-18 13:55:50.000000000 +0900 +++ audacity-src-1.3.3-beta/src/export/ExportFLAC.cpp 2007-05-19 13:41:16.000000000 +0900 @@ -145,6 +145,13 @@ #define SAMPLES_PER_RUN 8192 +/* FLACPP_API_VERSION_CURRENT is 6 for libFLAC++ from flac-1.1.3 (see ) */ +#if !defined FLACPP_API_VERSION_CURRENT || FLACPP_API_VERSION_CURRENT < 6 +#define LEGACY_FLAC +#else +#undef LEGACY_FLAC +#endif + static struct { bool do_exhaustive_model_search; @@ -229,7 +236,9 @@ gPrefs->Read(wxT("/FileFormats/FLACBitDepth"), wxT("16")); FLAC::Encoder::File *encoder= new FLAC::Encoder::File(); +#ifdef LEGACY_FLAC encoder->set_filename(OSFILENAME(fName)); +#endif encoder->set_channels(numChannels); encoder->set_sample_rate(int(rate + 0.5)); @@ -264,7 +273,11 @@ encoder->set_rice_parameter_search_dist(flacLevels[levelPref].rice_parameter_search_dist); encoder->set_max_lpc_order(flacLevels[levelPref].max_lpc_order); +#ifdef LEGACY_FLAC encoder->init(); +#else + encoder->init(OSFILENAME(fName)); +#endif int numWaveTracks; WaveTrack **waveTracks; @@ -343,7 +356,7 @@ return new ExportFLAC(); } -#endif // USE_LIBVORBIS +#endif // USE_LIBFLAC // Indentation settings for Vim and Emacs and unique identifier for Arch, a // version control system. Please do not modify past this point. diff -Naur audacity-src-1.3.3-beta.orig/src/import/ImportFLAC.cpp audacity-src-1.3.3-beta/src/import/ImportFLAC.cpp --- audacity-src-1.3.3-beta.orig/src/import/ImportFLAC.cpp 2007-05-18 13:55:53.000000000 +0900 +++ audacity-src-1.3.3-beta/src/import/ImportFLAC.cpp 2007-05-19 13:37:01.000000000 +0900 @@ -63,6 +63,13 @@ #include "../WaveTrack.h" #include "ImportPlugin.h" +/* FLACPP_API_VERSION_CURRENT is 6 for libFLAC++ from flac-1.1.3 (see ) */ +#if !defined FLACPP_API_VERSION_CURRENT || FLACPP_API_VERSION_CURRENT < 6 +#define LEGACY_FLAC +#else +#undef LEGACY_FLAC +#endif + class FLACImportFileHandle; class MyFLACFile : public FLAC::Decoder::File @@ -273,6 +280,7 @@ bool FLACImportFileHandle::Init() { +#ifdef LEGACY_FLAC bool success = mFile->set_filename(OSFILENAME(mName)); if (!success) { return false; @@ -281,11 +289,23 @@ if (state != FLAC__FILE_DECODER_OK) { return false; } +#else + if (mFile->init(OSFILENAME(mName)) != FLAC__STREAM_DECODER_INIT_STATUS_OK) { + return false; + } +#endif mFile->process_until_end_of_metadata(); +#ifdef LEGACY_FLAC state = mFile->get_state(); if (state != FLAC__FILE_DECODER_OK) { return false; } +#else + // not necessary to check state, error callback will catch errors, but here's how: + if (mFile->get_state() > FLAC__STREAM_DECODER_READ_FRAME) { + return false; + } +#endif if (!mFile->is_valid() || mFile->get_was_error()) { // This probably is not a FLAC file at all @@ -349,7 +369,11 @@ mChannels[1]->SetTeamed(true); } +#ifdef LEGACY_FLAC mFile->process_until_end_of_file(); +#else + mFile->process_until_end_of_stream(); +#endif *outTracks = new Track *[*outNumTracks]; for(c = 0; c < *outNumTracks; c++) {