We found that the AudioThumbnailDataFormat is handy for some basic DSP operations. Currently the definition resides in juce_AudioThumbnail.cpp, which makes it unavailable outside the thumbnail code.
I created a new header file, called "juce_AudioThumbnailDataFormat.h
/*
* juce_AudioThumbnailDataFormat.h
* Juce
*
*/
#ifndef __JUCE_AUDIOTHUMBNAILDATAFORMAT_JUCEHEADER__
#define __JUCE_AUDIOTHUMBNAILDATAFORMAT_JUCEHEADER__
//BEGIN_JUCE_NAMESPACE
//==============================================================================
struct JUCE_API AudioThumbnailDataFormat
{
char thumbnailMagic[4];
int samplesPerThumbSample;
int64 totalSamples; // source samples
int64 numFinishedSamples; // source samples
int numThumbnailSamples;
int numChannels;
int sampleRate;
char future[16];
char data[1];
void swapEndiannessIfNeeded() throw()
{
#if JUCE_BIG_ENDIAN
flip (samplesPerThumbSample);
flip (totalSamples);
flip (numFinishedSamples);
flip (numThumbnailSamples);
flip (numChannels);
flip (sampleRate);
#endif
}
private:
#if JUCE_BIG_ENDIAN
static void flip (int& n) { n = (int) ByteOrder::swap ((uint32) n); }
static void flip (int64& n) { n = (int64) ByteOrder::swap ((uint64) n); }
#endif
};
//END_JUCE_NAMESPACE
#endif // __JUCE_AUDIOTHUMBNAILDATAFORMAT_JUCEHEADER__
Would appreciate adding it to JUCE,
Eric