diff options
author | Joerg Mueller <nexyon@gmail.com> | 2011-06-04 03:28:57 +0400 |
---|---|---|
committer | Joerg Mueller <nexyon@gmail.com> | 2011-06-04 03:28:57 +0400 |
commit | d1c542ce0551f6ec3408b7c6689ad17b0a14e8d2 (patch) | |
tree | 4d4ca1da42cee6db71b3515f7330aa0fffdb6d70 /intern/audaspace/sndfile | |
parent | cd04cff1800e8f60a06d8da6e79ac436808c9a7d (diff) |
3D Audio GSoC:
Memory management improvements.
Diffstat (limited to 'intern/audaspace/sndfile')
-rw-r--r-- | intern/audaspace/sndfile/AUD_SndFileFactory.cpp | 10 | ||||
-rw-r--r-- | intern/audaspace/sndfile/AUD_SndFileFactory.h | 2 | ||||
-rw-r--r-- | intern/audaspace/sndfile/AUD_SndFileReader.cpp | 10 |
3 files changed, 11 insertions, 11 deletions
diff --git a/intern/audaspace/sndfile/AUD_SndFileFactory.cpp b/intern/audaspace/sndfile/AUD_SndFileFactory.cpp index 2d1d29e50f5..7ab3308f01b 100644 --- a/intern/audaspace/sndfile/AUD_SndFileFactory.cpp +++ b/intern/audaspace/sndfile/AUD_SndFileFactory.cpp @@ -43,13 +43,13 @@ AUD_SndFileFactory::AUD_SndFileFactory(std::string filename) : AUD_SndFileFactory::AUD_SndFileFactory(const data_t* buffer, int size) : m_buffer(new AUD_Buffer(size)) { - memcpy(m_buffer.get()->getBuffer(), buffer, size); + memcpy(m_buffer->getBuffer(), buffer, size); } -AUD_IReader* AUD_SndFileFactory::createReader() const +AUD_Reference<AUD_IReader> AUD_SndFileFactory::createReader() const { - if(m_buffer.get()) - return new AUD_SndFileReader(m_buffer); - else + if(m_buffer.isNull()) return new AUD_SndFileReader(m_filename); + else + return new AUD_SndFileReader(m_buffer); } diff --git a/intern/audaspace/sndfile/AUD_SndFileFactory.h b/intern/audaspace/sndfile/AUD_SndFileFactory.h index 9c747e1df01..3a1037e5587 100644 --- a/intern/audaspace/sndfile/AUD_SndFileFactory.h +++ b/intern/audaspace/sndfile/AUD_SndFileFactory.h @@ -72,7 +72,7 @@ public: */ AUD_SndFileFactory(const data_t* buffer, int size); - virtual AUD_IReader* createReader() const; + virtual AUD_Reference<AUD_IReader> createReader() const; }; #endif //AUD_SNDFILEFACTORY diff --git a/intern/audaspace/sndfile/AUD_SndFileReader.cpp b/intern/audaspace/sndfile/AUD_SndFileReader.cpp index f226d2eee4d..7b5fd7b0f45 100644 --- a/intern/audaspace/sndfile/AUD_SndFileReader.cpp +++ b/intern/audaspace/sndfile/AUD_SndFileReader.cpp @@ -36,7 +36,7 @@ sf_count_t AUD_SndFileReader::vio_get_filelen(void *user_data) { AUD_SndFileReader* reader = (AUD_SndFileReader*)user_data; - return reader->m_membuffer.get()->getSize(); + return reader->m_membuffer->getSize(); } sf_count_t AUD_SndFileReader::vio_seek(sf_count_t offset, int whence, @@ -53,7 +53,7 @@ sf_count_t AUD_SndFileReader::vio_seek(sf_count_t offset, int whence, reader->m_memoffset = reader->m_memoffset + offset; break; case SEEK_END: - reader->m_memoffset = reader->m_membuffer.get()->getSize() + offset; + reader->m_memoffset = reader->m_membuffer->getSize() + offset; break; } @@ -65,10 +65,10 @@ sf_count_t AUD_SndFileReader::vio_read(void *ptr, sf_count_t count, { AUD_SndFileReader* reader = (AUD_SndFileReader*)user_data; - if(reader->m_memoffset + count > reader->m_membuffer.get()->getSize()) - count = reader->m_membuffer.get()->getSize() - reader->m_memoffset; + if(reader->m_memoffset + count > reader->m_membuffer->getSize()) + count = reader->m_membuffer->getSize() - reader->m_memoffset; - memcpy(ptr, ((data_t*)reader->m_membuffer.get()->getBuffer()) + + memcpy(ptr, ((data_t*)reader->m_membuffer->getBuffer()) + reader->m_memoffset, count); reader->m_memoffset += count; |