Annotation of /trunk/rezound/patches/rezound-0.12.3.b-flac-1.1.3.patch
Parent Directory | Revision Log
Revision 630 -
(hide annotations)
(download)
Sat May 31 18:06:59 2008 UTC (16 years, 3 months ago) by niro
File size: 3006 byte(s)
Sat May 31 18:06:59 2008 UTC (16 years, 3 months ago) by niro
File size: 3006 byte(s)
-allow build against newer flac library
1 | niro | 630 | 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 |