BSE update breaks SpectMorph compilation



   Hi!

I updated BSE, and now SpectMorph doesn't compile any more. I think there are
(at least) two problems:

1) it seems that SpectMorph code depends on types like uint64 being available
at global scope (which used to be the case when using libbse)

smencoder.cc: In member function ‘void SpectMorph::Encoder::approx_noise(const std::vector<float>&)’:
smencoder.cc:1077:8: error: ‘uint64’ was not declared in this scope
   for (uint64 frame = 0; frame < audio_blocks.size(); frame++)

This could be fixed by SpectMorph defining its own SpectMorph::uint64.

2) bse headers included by SpectMorph expect undefined types

/usr/local/beast/include/bse-0/bse/bseutils.hh:45:42: error: ‘uint8’ does not name a type
 Bse::Icon bse_icon_from_pixstream (const uint8 *pixstream);

I wonder if I should produce fixes that replace uint8 with Bse::uint8 in
these cases.

The other option for SpectMorph at this point is to replace all BSE stuff
(except for the Beast plugin) completely with non-BSE code. For instance data
handles used for reading audio files could be replaced with libsndfile and so
forth. This would probably be preferable from a dependency point of view, as
depending against libsndfile (for instance) isn't uncommon and easy for
packages to do, whereas depending on libbse is not as easy. And API stability
of libraries like libsndfile is higher, too.

Its still quite a bit of work to completely free the codebase from libbse
constructs.

   Cu... Stefan
-- 
Stefan Westerfeld, http://space.twc.de/~stefan


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]