1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-22 01:34:21 +00:00

Tightened up some array const-ness in AudioFormatWriter.

This commit is contained in:
jules 2013-09-26 12:30:22 +01:00
parent 6aae0c798c
commit a9d15e04da
2 changed files with 15 additions and 15 deletions

View file

@ -127,7 +127,7 @@ bool AudioFormatWriter::writeFromAudioSource (AudioSource& source, int numSample
return true;
}
bool AudioFormatWriter::writeFromFloatArrays (const float** channels, int numSourceChannels, int numSamples)
bool AudioFormatWriter::writeFromFloatArrays (const float* const* channels, int numSourceChannels, int numSamples)
{
if (numSamples <= 0)
return true;
@ -170,7 +170,7 @@ bool AudioFormatWriter::writeFromAudioSampleBuffer (const AudioSampleBuffer& sou
jassert (startSample >= 0 && startSample + numSamples <= source.getNumSamples() && numSourceChannels > 0);
if (startSample == 0)
return writeFromFloatArrays ((const float**) source.getArrayOfChannels(), numSourceChannels, numSamples);
return writeFromFloatArrays (source.getArrayOfChannels(), numSourceChannels, numSamples);
const float* chans [256];
jassert ((int) numChannels < numElementsInArray (chans));
@ -184,12 +184,11 @@ bool AudioFormatWriter::writeFromAudioSampleBuffer (const AudioSampleBuffer& sou
}
//==============================================================================
class AudioFormatWriter::ThreadedWriter::Buffer : public AbstractFifo,
private TimeSliceClient
class AudioFormatWriter::ThreadedWriter::Buffer : private TimeSliceClient
{
public:
Buffer (TimeSliceThread& tst, AudioFormatWriter* w, int channels, int numSamples)
: AbstractFifo (numSamples),
: fifo (numSamples),
buffer (channels, numSamples),
timeSliceThread (tst),
writer (w),
@ -209,7 +208,7 @@ public:
{}
}
bool write (const float** data, int numSamples)
bool write (const float* const* data, int numSamples)
{
if (numSamples <= 0 || ! isRunning)
return true;
@ -217,7 +216,7 @@ public:
jassert (timeSliceThread.isThreadRunning()); // you need to get your thread running before pumping data into this!
int start1, size1, start2, size2;
prepareToWrite (numSamples, start1, size1, start2, size2);
fifo.prepareToWrite (numSamples, start1, size1, start2, size2);
if (size1 + size2 < numSamples)
return false;
@ -228,7 +227,7 @@ public:
buffer.copyFrom (i, start2, data[i] + size1, size2);
}
finishedWrite (size1 + size2);
fifo.finishedWrite (size1 + size2);
timeSliceThread.notify();
return true;
}
@ -240,10 +239,10 @@ public:
int writePendingData()
{
const int numToDo = getTotalSize() / 4;
const int numToDo = fifo.getTotalSize() / 4;
int start1, size1, start2, size2;
prepareToRead (numToDo, start1, size1, start2, size2);
fifo.prepareToRead (numToDo, start1, size1, start2, size2);
if (size1 <= 0)
return 10;
@ -266,7 +265,7 @@ public:
samplesWritten += size2;
}
finishedRead (size1 + size2);
fifo.finishedRead (size1 + size2);
return 0;
}
@ -281,6 +280,7 @@ public:
}
private:
AbstractFifo fifo;
AudioSampleBuffer buffer;
TimeSliceThread& timeSliceThread;
ScopedPointer<AudioFormatWriter> writer;
@ -301,7 +301,7 @@ AudioFormatWriter::ThreadedWriter::~ThreadedWriter()
{
}
bool AudioFormatWriter::ThreadedWriter::write (const float** data, int numSamples)
bool AudioFormatWriter::ThreadedWriter::write (const float* const* data, int numSamples)
{
return buffer->write (data, numSamples);
}

View file

@ -128,7 +128,7 @@ public:
int startSample, int numSamples);
/** Writes some samples from a set of float data channels. */
bool writeFromFloatArrays (const float** channels, int numChannels, int numSamples);
bool writeFromFloatArrays (const float* const* channels, int numChannels, int numSamples);
//==============================================================================
/** Returns the sample rate being used. */
@ -177,7 +177,7 @@ public:
The data must be an array containing the same number of channels as the
AudioFormatWriter object is using. None of these channels can be null.
*/
bool write (const float** data, int numSamples);
bool write (const float* const* data, int numSamples);
class JUCE_API IncomingDataReceiver
{
@ -229,7 +229,7 @@ protected:
typedef AudioData::Pointer <DestSampleType, DestEndianness, AudioData::Interleaved, AudioData::NonConst> DestType;
typedef AudioData::Pointer <SourceSampleType, AudioData::NativeEndian, AudioData::NonInterleaved, AudioData::Const> SourceType;
static void write (void* destData, int numDestChannels, const int** source,
static void write (void* destData, int numDestChannels, const int* const* source,
int numSamples, const int sourceOffset = 0) noexcept
{
for (int i = 0; i < numDestChannels; ++i)