Magellan Linux

Annotation of /trunk/rezound/patches/rezound-0.12.3.b-flac-1.1.3.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 630 - (hide annotations) (download)
Sat May 31 18:06:59 2008 UTC (15 years, 11 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