Contents of /trunk/rezound/patches/rezound-0.12.3.b-flac-1.1.3.patch
Parent Directory | Revision Log
Revision 630 -
(show annotations)
(download)
Sat May 31 18:06:59 2008 UTC (16 years, 4 months ago) by niro
File size: 3006 byte(s)
Sat May 31 18:06:59 2008 UTC (16 years, 4 months ago) by niro
File size: 3006 byte(s)
-allow build against newer flac library
1 | This patch adds ifdefs to make rezound compile and work with flac 1.1.2 and >=1.1.3 |
2 | See : http://flac.sourceforge.net/api/group__porting.html for more details |
3 | |
4 | Index: rezound-0.12.3beta/src/backend/CFLACSoundTranslator.cpp |
5 | =================================================================== |
6 | --- rezound-0.12.3beta.orig/src/backend/CFLACSoundTranslator.cpp |
7 | +++ rezound-0.12.3beta/src/backend/CFLACSoundTranslator.cpp |
8 | @@ -42,6 +42,12 @@ |
9 | #include "CSound.h" |
10 | #include "AStatusComm.h" |
11 | |
12 | +#if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT < 8 |
13 | +#define LEGACY_FLAC |
14 | +#else |
15 | +#undef LEGACY_FLAC |
16 | +#endif |
17 | + |
18 | CFLACSoundTranslator::CFLACSoundTranslator() |
19 | { |
20 | } |
21 | @@ -75,15 +81,23 @@ public: |
22 | for(unsigned t=0;t<MAX_CHANNELS;t++) |
23 | accessers[t]=NULL; |
24 | |
25 | +#ifdef LEGACY_FLAC |
26 | set_filename(filename.c_str()); |
27 | +#endif |
28 | |
29 | set_metadata_ignore_all(); |
30 | //set_metadata_respond(FLAC__METADATA_TYPE_VORBIS_COMMENT); |
31 | //set_metadata_respond(FLAC__METADATA_TYPE_CUESHEET); |
32 | |
33 | +#ifdef LEGACY_FLAC |
34 | State s=init(); |
35 | if(s!=FLAC__FILE_DECODER_OK) |
36 | throw runtime_error(string(__func__)+" -- "+s.as_cstring()); |
37 | +#else |
38 | + FLAC__StreamDecoderInitStatus s=init(filename.c_str()); |
39 | + if(s!=FLAC__STREAM_DECODER_INIT_STATUS_OK) |
40 | + throw runtime_error(string(__func__)+" -- FLAC__STREAM_DECODER_INIT_STATUS not OK"); |
41 | +#endif |
42 | } |
43 | |
44 | virtual ~MyFLACDecoderFile() |
45 | @@ -170,7 +184,11 @@ protected: |
46 | |
47 | // update status bar and detect user cancel |
48 | FLAC__uint64 filePosition; |
49 | +#ifdef LEGACY_FLAC |
50 | FLAC__file_decoder_get_decode_position(decoder_, &filePosition); |
51 | +#else |
52 | + FLAC__stream_decoder_get_decode_position(decoder_, &filePosition); |
53 | +#endif |
54 | return statusBar.update(filePosition) ? FLAC__STREAM_DECODER_WRITE_STATUS_ABORT : FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE; |
55 | } |
56 | |
57 | @@ -215,7 +233,11 @@ private: |
58 | bool CFLACSoundTranslator::onLoadSound(const string filename,CSound *sound) const |
59 | { |
60 | MyFLACDecoderFile f(filename,sound); |
61 | +#ifdef LEGACY_FLAC |
62 | return f.process_until_end_of_file(); |
63 | +#else |
64 | + return f.process_until_end_of_stream(); |
65 | +#endif |
66 | } |
67 | |
68 | |
69 | @@ -258,7 +280,9 @@ bool CFLACSoundTranslator::onSaveSound(c |
70 | |
71 | MyFLACEncoderFile f(saveLength); |
72 | |
73 | +#ifdef LEGACY_FLAC |
74 | f.set_filename(filename.c_str()); |
75 | +#endif |
76 | |
77 | f.set_channels(sound->getChannelCount()); |
78 | |
79 | @@ -274,8 +298,13 @@ bool CFLACSoundTranslator::onSaveSound(c |
80 | //f.set_metadata(...) // ??? to do to set cues and user notes, etc |
81 | |
82 | |
83 | +#ifdef LEGACY_FLAC |
84 | MyFLACEncoderFile::State s=f.init(); |
85 | if(s==FLAC__STREAM_ENCODER_OK) |
86 | +#else |
87 | + FLAC__StreamEncoderInitStatus s=f.init(filename.c_str()); |
88 | + if(s==FLAC__STREAM_ENCODER_INIT_STATUS_OK) |
89 | +#endif |
90 | { |
91 | #define BUFFER_SIZE 65536 |
92 | TAutoBuffer<FLAC__int32> buffers[MAX_CHANNELS]; |
93 | @@ -328,7 +357,11 @@ bool CFLACSoundTranslator::onSaveSound(c |
94 | return true; |
95 | } |
96 | else |
97 | +#ifdef LEGACY_FLAC |
98 | throw runtime_error(string(__func__)+" -- error creating FLAC encoder -- "+s.as_cstring()); |
99 | +#else |
100 | + throw runtime_error(string(__func__)+" -- error creating FLAC encoder -- "); |
101 | +#endif |
102 | |
103 | } |
104 |