mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Tidied up some docs and added an AudioFormat constructor.
This commit is contained in:
parent
8a66ec83f0
commit
b05c8413cf
11 changed files with 58 additions and 75 deletions
|
|
@ -22,9 +22,7 @@
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
//==============================================================================
|
||||
static const char* const aiffFormatName = "AIFF file";
|
||||
static const char* const aiffExtensions[] = { ".aiff", ".aif", 0 };
|
||||
|
||||
//==============================================================================
|
||||
const char* const AiffAudioFormat::appleOneShot = "apple one shot";
|
||||
|
|
@ -101,7 +99,7 @@ namespace AiffFileHelpers
|
|||
if (values.getAllKeys().contains ("MidiUnityNote", true))
|
||||
{
|
||||
block.setSize ((sizeof (InstChunk) + 3) & ~(size_t) 3, true);
|
||||
InstChunk& inst = *static_cast <InstChunk*> (block.getData());
|
||||
InstChunk& inst = *static_cast<InstChunk*> (block.getData());
|
||||
|
||||
inst.baseNote = getValue8 (values, "MidiUnityNote", "60");
|
||||
inst.detune = getValue8 (values, "Detune", "0");
|
||||
|
|
@ -220,7 +218,7 @@ namespace AiffFileHelpers
|
|||
StringArray tagsArray;
|
||||
|
||||
int bytesLeft = (int) mb.getSize();
|
||||
const char* data = static_cast <const char*> (mb.getData());
|
||||
const char* data = static_cast<const char*> (mb.getData());
|
||||
|
||||
while (bytesLeft > 0)
|
||||
{
|
||||
|
|
@ -365,7 +363,7 @@ class AiffAudioFormatReader : public AudioFormatReader
|
|||
{
|
||||
public:
|
||||
AiffAudioFormatReader (InputStream* in)
|
||||
: AudioFormatReader (in, TRANS (aiffFormatName))
|
||||
: AudioFormatReader (in, aiffFormatName)
|
||||
{
|
||||
using namespace AiffFileHelpers;
|
||||
|
||||
|
|
@ -611,7 +609,7 @@ public:
|
|||
AiffAudioFormatWriter (OutputStream* out, double rate,
|
||||
unsigned int numChans, unsigned int bits,
|
||||
const StringPairArray& metadataValues)
|
||||
: AudioFormatWriter (out, TRANS (aiffFormatName), rate, numChans, bits),
|
||||
: AudioFormatWriter (out, aiffFormatName, rate, numChans, bits),
|
||||
lengthInSamples (0),
|
||||
bytesWritten (0),
|
||||
writeFailed (false)
|
||||
|
|
@ -879,8 +877,7 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
AiffAudioFormat::AiffAudioFormat()
|
||||
: AudioFormat (TRANS (aiffFormatName), StringArray (aiffExtensions))
|
||||
AiffAudioFormat::AiffAudioFormat() : AudioFormat (aiffFormatName, ".aiff .aif")
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ class CoreAudioReader : public AudioFormatReader
|
|||
{
|
||||
public:
|
||||
CoreAudioReader (InputStream* const inp)
|
||||
: AudioFormatReader (inp, TRANS (coreAudioFormatName)),
|
||||
: AudioFormatReader (inp, coreAudioFormatName),
|
||||
ok (false), lastReadPosition (0)
|
||||
{
|
||||
usesFloatingPointData = true;
|
||||
|
|
@ -487,7 +487,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
CoreAudioFormat::CoreAudioFormat()
|
||||
: AudioFormat (TRANS (coreAudioFormatName), findFileExtensionsForCoreAudioCodecs())
|
||||
: AudioFormat (coreAudioFormatName, findFileExtensionsForCoreAudioCodecs())
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,16 +83,14 @@ namespace FlacNamespace
|
|||
|
||||
//==============================================================================
|
||||
static const char* const flacFormatName = "FLAC file";
|
||||
static const char* const flacExtensions[] = { ".flac", 0 };
|
||||
|
||||
|
||||
//==============================================================================
|
||||
class FlacReader : public AudioFormatReader
|
||||
{
|
||||
public:
|
||||
//==============================================================================
|
||||
FlacReader (InputStream* const in)
|
||||
: AudioFormatReader (in, TRANS (flacFormatName)),
|
||||
: AudioFormatReader (in, flacFormatName),
|
||||
reservoir (2, 0),
|
||||
reservoirStart (0),
|
||||
samplesInReservoir (0),
|
||||
|
|
@ -313,7 +311,7 @@ class FlacWriter : public AudioFormatWriter
|
|||
{
|
||||
public:
|
||||
FlacWriter (OutputStream* const out, double rate, uint32 numChans, uint32 bits, int qualityOptionIndex)
|
||||
: AudioFormatWriter (out, TRANS (flacFormatName), rate, numChans, bits)
|
||||
: AudioFormatWriter (out, flacFormatName, rate, numChans, bits)
|
||||
{
|
||||
using namespace FlacNamespace;
|
||||
encoder = FLAC__stream_encoder_new();
|
||||
|
|
@ -478,7 +476,7 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
FlacAudioFormat::FlacAudioFormat()
|
||||
: AudioFormat (TRANS (flacFormatName), StringArray (flacExtensions))
|
||||
: AudioFormat (flacFormatName, ".flac")
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -147,12 +147,9 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
static const char* const lameFormatName = "MP3 file";
|
||||
static const char* const lameExtensions[] = { ".mp3", nullptr };
|
||||
|
||||
LAMEEncoderAudioFormat::LAMEEncoderAudioFormat (const File& lameApplication)
|
||||
: AudioFormat (TRANS (lameFormatName), StringArray (lameExtensions)),
|
||||
lameApp (lameApplication)
|
||||
: AudioFormat ("MP3 file", ".mp3"),
|
||||
lameApp (lameApplication)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2929,14 +2929,13 @@ private:
|
|||
|
||||
//==============================================================================
|
||||
static const char* const mp3FormatName = "MP3 file";
|
||||
static const char* const mp3Extensions[] = { ".mp3", nullptr };
|
||||
|
||||
//==============================================================================
|
||||
class MP3Reader : public AudioFormatReader
|
||||
{
|
||||
public:
|
||||
MP3Reader (InputStream* const in)
|
||||
: AudioFormatReader (in, TRANS (mp3FormatName)),
|
||||
: AudioFormatReader (in, mp3FormatName),
|
||||
stream (*in), currentPosition (0),
|
||||
decodedStart (0), decodedEnd (0)
|
||||
{
|
||||
|
|
@ -2953,7 +2952,6 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
bool readSamples (int** destSamples, int numDestChannels, int startOffsetInDestBuffer,
|
||||
int64 startSampleInFile, int numSamples) override
|
||||
{
|
||||
|
|
@ -3109,10 +3107,7 @@ private:
|
|||
}
|
||||
|
||||
//==============================================================================
|
||||
MP3AudioFormat::MP3AudioFormat()
|
||||
: AudioFormat (MP3Decoder::mp3FormatName, StringArray (MP3Decoder::mp3Extensions))
|
||||
{}
|
||||
|
||||
MP3AudioFormat::MP3AudioFormat() : AudioFormat (MP3Decoder::mp3FormatName, ".mp3") {}
|
||||
MP3AudioFormat::~MP3AudioFormat() {}
|
||||
|
||||
Array<int> MP3AudioFormat::getPossibleSampleRates() { return Array<int>(); }
|
||||
|
|
|
|||
|
|
@ -89,7 +89,6 @@ namespace OggVorbisNamespace
|
|||
|
||||
//==============================================================================
|
||||
static const char* const oggFormatName = "Ogg-Vorbis file";
|
||||
static const char* const oggExtensions[] = { ".ogg", 0 };
|
||||
|
||||
const char* const OggVorbisAudioFormat::encoderName = "encoder";
|
||||
const char* const OggVorbisAudioFormat::id3title = "id3title";
|
||||
|
|
@ -106,7 +105,7 @@ class OggReader : public AudioFormatReader
|
|||
{
|
||||
public:
|
||||
OggReader (InputStream* const inp)
|
||||
: AudioFormatReader (inp, TRANS (oggFormatName)),
|
||||
: AudioFormatReader (inp, oggFormatName),
|
||||
reservoir (2, 4096),
|
||||
reservoirStart (0),
|
||||
samplesInReservoir (0)
|
||||
|
|
@ -115,10 +114,10 @@ public:
|
|||
sampleRate = 0;
|
||||
usesFloatingPointData = true;
|
||||
|
||||
callbacks.read_func = &oggReadCallback;
|
||||
callbacks.seek_func = &oggSeekCallback;
|
||||
callbacks.read_func = &oggReadCallback;
|
||||
callbacks.seek_func = &oggSeekCallback;
|
||||
callbacks.close_func = &oggCloseCallback;
|
||||
callbacks.tell_func = &oggTellCallback;
|
||||
callbacks.tell_func = &oggTellCallback;
|
||||
|
||||
const int err = ov_open_callbacks (input, &ovFile, 0, 0, callbacks);
|
||||
|
||||
|
|
@ -222,12 +221,12 @@ public:
|
|||
//==============================================================================
|
||||
static size_t oggReadCallback (void* ptr, size_t size, size_t nmemb, void* datasource)
|
||||
{
|
||||
return (size_t) (static_cast <InputStream*> (datasource)->read (ptr, (int) (size * nmemb))) / size;
|
||||
return (size_t) (static_cast<InputStream*> (datasource)->read (ptr, (int) (size * nmemb))) / size;
|
||||
}
|
||||
|
||||
static int oggSeekCallback (void* datasource, OggVorbisNamespace::ogg_int64_t offset, int whence)
|
||||
{
|
||||
InputStream* const in = static_cast <InputStream*> (datasource);
|
||||
InputStream* const in = static_cast<InputStream*> (datasource);
|
||||
|
||||
if (whence == SEEK_CUR)
|
||||
offset += in->getPosition();
|
||||
|
|
@ -245,7 +244,7 @@ public:
|
|||
|
||||
static long oggTellCallback (void* datasource)
|
||||
{
|
||||
return (long) static_cast <InputStream*> (datasource)->getPosition();
|
||||
return (long) static_cast<InputStream*> (datasource)->getPosition();
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
@ -267,7 +266,7 @@ public:
|
|||
const unsigned int bitsPerSample_,
|
||||
const int qualityIndex,
|
||||
const StringPairArray& metadata)
|
||||
: AudioFormatWriter (out, TRANS (oggFormatName), sampleRate_, numChannels_, bitsPerSample_),
|
||||
: AudioFormatWriter (out, oggFormatName, sampleRate_, numChannels_, bitsPerSample_),
|
||||
ok (false)
|
||||
{
|
||||
using namespace OggVorbisNamespace;
|
||||
|
|
@ -279,13 +278,13 @@ public:
|
|||
{
|
||||
vorbis_comment_init (&vc);
|
||||
|
||||
addMetadata (metadata, OggVorbisAudioFormat::encoderName, "ENCODER");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3title, "TITLE");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3artist, "ARTIST");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3album, "ALBUM");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3comment, "COMMENT");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3date, "DATE");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3genre, "GENRE");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::encoderName, "ENCODER");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3title, "TITLE");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3artist, "ARTIST");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3album, "ALBUM");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3comment, "COMMENT");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3date, "DATE");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3genre, "GENRE");
|
||||
addMetadata (metadata, OggVorbisAudioFormat::id3trackNumber, "TRACKNUMBER");
|
||||
|
||||
vorbis_analysis_init (&vd, &vi);
|
||||
|
|
@ -425,8 +424,7 @@ private:
|
|||
|
||||
|
||||
//==============================================================================
|
||||
OggVorbisAudioFormat::OggVorbisAudioFormat()
|
||||
: AudioFormat (TRANS (oggFormatName), StringArray (oggExtensions))
|
||||
OggVorbisAudioFormat::OggVorbisAudioFormat() : AudioFormat (oggFormatName, ".ogg")
|
||||
{
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -66,14 +66,13 @@ namespace juce
|
|||
bool juce_OpenQuickTimeMovieFromStream (InputStream* input, Movie& movie, Handle& dataHandle);
|
||||
|
||||
static const char* const quickTimeFormatName = "QuickTime file";
|
||||
static const char* const quickTimeExtensions[] = { ".mov", ".mp3", ".mp4", ".m4a", 0 };
|
||||
|
||||
//==============================================================================
|
||||
class QTAudioReader : public AudioFormatReader
|
||||
{
|
||||
public:
|
||||
QTAudioReader (InputStream* const input_, const int trackNum_)
|
||||
: AudioFormatReader (input_, TRANS (quickTimeFormatName)),
|
||||
: AudioFormatReader (input_, quickTimeFormatName),
|
||||
ok (false),
|
||||
movie (0),
|
||||
trackNum (trackNum_),
|
||||
|
|
@ -349,8 +348,7 @@ private:
|
|||
|
||||
|
||||
//==============================================================================
|
||||
QuickTimeAudioFormat::QuickTimeAudioFormat()
|
||||
: AudioFormat (TRANS (quickTimeFormatName), StringArray (quickTimeExtensions))
|
||||
QuickTimeAudioFormat::QuickTimeAudioFormat() : AudioFormat (quickTimeFormatName, ".mov .mp3 .mp4 .m4a")
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -368,7 +366,7 @@ bool QuickTimeAudioFormat::canDoMono() { return true; }
|
|||
AudioFormatReader* QuickTimeAudioFormat::createReaderFor (InputStream* sourceStream,
|
||||
const bool deleteStreamIfOpeningFails)
|
||||
{
|
||||
ScopedPointer <QTAudioReader> r (new QTAudioReader (sourceStream, 0));
|
||||
ScopedPointer<QTAudioReader> r (new QTAudioReader (sourceStream, 0));
|
||||
|
||||
if (r->ok)
|
||||
return r.release();
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
*/
|
||||
|
||||
static const char* const wavFormatName = "WAV file";
|
||||
static const char* const wavExtensions[] = { ".wav", ".bwf", 0 };
|
||||
|
||||
//==============================================================================
|
||||
const char* const WavAudioFormat::bwavDescription = "bwav description";
|
||||
|
|
@ -225,7 +224,7 @@ namespace WavFileHelpers
|
|||
{
|
||||
data.setSize (roundUpSize (sizeof (SMPLChunk) + (size_t) (numLoops - 1) * sizeof (SampleLoop)), true);
|
||||
|
||||
SMPLChunk* const s = static_cast <SMPLChunk*> (data.getData());
|
||||
SMPLChunk* const s = static_cast<SMPLChunk*> (data.getData());
|
||||
|
||||
s->manufacturer = getValue (values, "Manufacturer", "0");
|
||||
s->product = getValue (values, "Product", "0");
|
||||
|
|
@ -293,7 +292,7 @@ namespace WavFileHelpers
|
|||
if (keys.contains ("LowNote", true) && keys.contains ("HighNote", true))
|
||||
{
|
||||
data.setSize (8, true);
|
||||
InstChunk* const inst = static_cast <InstChunk*> (data.getData());
|
||||
InstChunk* const inst = static_cast<InstChunk*> (data.getData());
|
||||
|
||||
inst->baseNote = getValue (values, "MidiUnityNote", "60");
|
||||
inst->detune = getValue (values, "Detune", "0");
|
||||
|
|
@ -356,7 +355,7 @@ namespace WavFileHelpers
|
|||
{
|
||||
data.setSize (roundUpSize (sizeof (CueChunk) + (size_t) (numCues - 1) * sizeof (Cue)), true);
|
||||
|
||||
CueChunk* const c = static_cast <CueChunk*> (data.getData());
|
||||
CueChunk* const c = static_cast<CueChunk*> (data.getData());
|
||||
|
||||
c->numCues = ByteOrder::swapIfBigEndian ((uint32) numCues);
|
||||
|
||||
|
|
@ -605,7 +604,7 @@ class WavAudioFormatReader : public AudioFormatReader
|
|||
{
|
||||
public:
|
||||
WavAudioFormatReader (InputStream* const in)
|
||||
: AudioFormatReader (in, TRANS (wavFormatName)),
|
||||
: AudioFormatReader (in, wavFormatName),
|
||||
bwavChunkStart (0),
|
||||
bwavSize (0),
|
||||
dataLength (0),
|
||||
|
|
@ -900,7 +899,7 @@ public:
|
|||
WavAudioFormatWriter (OutputStream* const out, const double rate,
|
||||
const unsigned int numChans, const unsigned int bits,
|
||||
const StringPairArray& metadataValues)
|
||||
: AudioFormatWriter (out, TRANS (wavFormatName), rate, numChans, bits),
|
||||
: AudioFormatWriter (out, wavFormatName, rate, numChans, bits),
|
||||
lengthInSamples (0),
|
||||
bytesWritten (0),
|
||||
writeFailed (false)
|
||||
|
|
@ -1197,14 +1196,8 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
WavAudioFormat::WavAudioFormat()
|
||||
: AudioFormat (TRANS (wavFormatName), StringArray (wavExtensions))
|
||||
{
|
||||
}
|
||||
|
||||
WavAudioFormat::~WavAudioFormat()
|
||||
{
|
||||
}
|
||||
WavAudioFormat::WavAudioFormat() : AudioFormat (wavFormatName, ".wav .bwf") {}
|
||||
WavAudioFormat::~WavAudioFormat() {}
|
||||
|
||||
Array<int> WavAudioFormat::getPossibleSampleRates()
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue