summaryrefslogtreecommitdiffstats
path: root/media/libmedia
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2015-01-13 23:31:16 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-01-13 23:31:16 +0000
commit17c933cc07be9656aee8afc82dc866a67b3fd78e (patch)
tree1dbb1c050687cda6d0877c29d60ac80d281a05b3 /media/libmedia
parent7e85361e364bf8f80ab43dd5feb0f584e481019e (diff)
parentcec272dfe2cf6bf6cdb8a4afa5afdd0e910c915f (diff)
downloadframeworks_av-17c933cc07be9656aee8afc82dc866a67b3fd78e.zip
frameworks_av-17c933cc07be9656aee8afc82dc866a67b3fd78e.tar.gz
frameworks_av-17c933cc07be9656aee8afc82dc866a67b3fd78e.tar.bz2
am cec272df: am 724b9ea5: Merge "Replace MidiFile player with a Midi extractor"
* commit 'cec272dfe2cf6bf6cdb8a4afa5afdd0e910c915f': Replace MidiFile player with a Midi extractor
Diffstat (limited to 'media/libmedia')
-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;