From b1cc8cce003ca7581bc4539468e96a86037fcfb4 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 18 Jun 2012 08:49:41 +0100 Subject: [PATCH] Couple of additions to MemoryInputStream. --- modules/juce_core/streams/juce_MemoryInputStream.cpp | 8 ++++---- modules/juce_core/streams/juce_MemoryInputStream.h | 8 +++++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/juce_core/streams/juce_MemoryInputStream.cpp b/modules/juce_core/streams/juce_MemoryInputStream.cpp index 6ca743651d..b1cfce9f22 100644 --- a/modules/juce_core/streams/juce_MemoryInputStream.cpp +++ b/modules/juce_core/streams/juce_MemoryInputStream.cpp @@ -26,7 +26,7 @@ MemoryInputStream::MemoryInputStream (const void* const sourceData, const size_t sourceDataSize, const bool keepInternalCopy) - : data (static_cast (sourceData)), + : data (sourceData), dataSize (sourceDataSize), position (0) { @@ -36,7 +36,7 @@ MemoryInputStream::MemoryInputStream (const void* const sourceData, MemoryInputStream::MemoryInputStream (const MemoryBlock& sourceData, const bool keepInternalCopy) - : data (static_cast (sourceData.getData())), + : data (sourceData.getData()), dataSize (sourceData.getSize()), position (0) { @@ -68,9 +68,9 @@ int MemoryInputStream::read (void* const buffer, const int howMany) if (num <= 0) return 0; - memcpy (buffer, data + position, (size_t) num); + memcpy (buffer, addBytesToPointer (data, position), (size_t) num); position += num; - return (int) num; + return num; } bool MemoryInputStream::isExhausted() diff --git a/modules/juce_core/streams/juce_MemoryInputStream.h b/modules/juce_core/streams/juce_MemoryInputStream.h index 74b9e14b31..9cd4d0fdaa 100644 --- a/modules/juce_core/streams/juce_MemoryInputStream.h +++ b/modules/juce_core/streams/juce_MemoryInputStream.h @@ -70,6 +70,12 @@ public: /** Destructor. */ ~MemoryInputStream(); + /** Returns a pointer to the source data block from which this stream is reading. */ + const void* getData() const noexcept { return data; } + + /** Returns the number of bytes of source data in the block from which this stream is reading. */ + size_t getDataSize() const noexcept { return dataSize; } + //============================================================================== int64 getPosition(); bool setPosition (int64 pos); @@ -79,7 +85,7 @@ public: private: //============================================================================== - const char* data; + const void* data; size_t dataSize, position; HeapBlock internalCopy;