From a9d15e04da445fcffd9426ee84b25d8612ed57b6 Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 26 Sep 2013 12:30:22 +0100 Subject: [PATCH] Tightened up some array const-ness in AudioFormatWriter. --- .../format/juce_AudioFormatWriter.cpp | 24 +++++++++---------- .../format/juce_AudioFormatWriter.h | 6 ++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp b/modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp index d254100c9e..9ca6756c68 100644 --- a/modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp +++ b/modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp @@ -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 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); } diff --git a/modules/juce_audio_formats/format/juce_AudioFormatWriter.h b/modules/juce_audio_formats/format/juce_AudioFormatWriter.h index 2862a8a600..ceb54dabe5 100644 --- a/modules/juce_audio_formats/format/juce_AudioFormatWriter.h +++ b/modules/juce_audio_formats/format/juce_AudioFormatWriter.h @@ -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 DestType; typedef AudioData::Pointer 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)