summaryrefslogtreecommitdiffstats
path: root/media/libmedia/MidiIoWrapper.cpp
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2015-01-08 13:40:53 -0800
committerMarco Nelissen <marcone@google.com>2015-01-08 13:48:52 -0800
commit0e8928bf4f2b01b783f6da97d15e8f1abb0fd7d7 (patch)
tree915b24bd6c686000a5c4fb8af920c8a16204e30e /media/libmedia/MidiIoWrapper.cpp
parentc52af00beda4477d0fd00c3071e6ffd9c465430b (diff)
downloadframeworks_av-0e8928bf4f2b01b783f6da97d15e8f1abb0fd7d7.zip
frameworks_av-0e8928bf4f2b01b783f6da97d15e8f1abb0fd7d7.tar.gz
frameworks_av-0e8928bf4f2b01b783f6da97d15e8f1abb0fd7d7.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.cpp14
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;