diff options
author | Marco Nelissen <marcone@google.com> | 2014-12-17 14:44:33 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2014-12-18 11:54:42 -0800 |
commit | faf4efc6a41e88adf85f76f48f020a6d681f5ff1 (patch) | |
tree | a54aa43c242bb9c640afcf0d7c8b5f3a2c9e45ab /media/libmedia/MidiIoWrapper.cpp | |
parent | 23c8dc13787186dc98731055858b2fba3aedc105 (diff) | |
download | frameworks_av-faf4efc6a41e88adf85f76f48f020a6d681f5ff1.zip frameworks_av-faf4efc6a41e88adf85f76f48f020a6d681f5ff1.tar.gz frameworks_av-faf4efc6a41e88adf85f76f48f020a6d681f5ff1.tar.bz2 |
Replace MidiFile player with a Midi extractor
This gets rids of a bunch of special midi handling and replaces it
with an extractor that works with NuPlayer and MediaMetadataRetriever.
Change-Id: I8d0f5bbdde2ca24267cf4d62ab26afe9630e0217
Diffstat (limited to 'media/libmedia/MidiIoWrapper.cpp')
-rw-r--r-- | media/libmedia/MidiIoWrapper.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/media/libmedia/MidiIoWrapper.cpp b/media/libmedia/MidiIoWrapper.cpp index ef931d2..2181111 100644 --- a/media/libmedia/MidiIoWrapper.cpp +++ b/media/libmedia/MidiIoWrapper.cpp @@ -47,6 +47,16 @@ MidiIoWrapper::MidiIoWrapper(int fd, off64_t offset, int64_t size) { mLength = size; } +MidiIoWrapper::MidiIoWrapper(const sp<DataSource> &source) { + mDataSource = source; + off64_t l; + if (mDataSource->getSize(&l) == OK) { + mLength = l; + } else { + mLength = 0; + } +} + MidiIoWrapper::~MidiIoWrapper() { ALOGV("~MidiIoWrapper"); close(mFd); @@ -54,6 +64,10 @@ MidiIoWrapper::~MidiIoWrapper() { int MidiIoWrapper::readAt(void *buffer, int offset, int size) { ALOGV("readAt(%p, %d, %d)", buffer, offset, size); + + if (mDataSource != NULL) { + return mDataSource->readAt(offset, buffer, size); + } lseek(mFd, mBase + offset, SEEK_SET); if (offset + size > mLength) { size = mLength - offset; |