diff options
author | Marco Nelissen <marcone@google.com> | 2014-12-16 12:46:34 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2014-12-16 14:06:57 -0800 |
commit | 08b9e2d113213c37506a416bc95a36789bcab4ca (patch) | |
tree | f417e27066b7ba7c59eb12606d28f1c7081e998e /media/libmedia/JetPlayer.cpp | |
parent | d3671c844e2592ce3a29d6d3c4fc344343783f46 (diff) | |
download | frameworks_av-08b9e2d113213c37506a416bc95a36789bcab4ca.zip frameworks_av-08b9e2d113213c37506a416bc95a36789bcab4ca.tar.gz frameworks_av-08b9e2d113213c37506a416bc95a36789bcab4ca.tar.bz2 |
Use callbacks for Midi I/O
Instead of having the Sonivox engine directly open the file and
use stdio to read from it, use caller-provided callbacks.
Change-Id: I4d775c8458c48c591a15794c4517e006dcf034e1
Diffstat (limited to 'media/libmedia/JetPlayer.cpp')
-rw-r--r-- | media/libmedia/JetPlayer.cpp | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/media/libmedia/JetPlayer.cpp b/media/libmedia/JetPlayer.cpp index f0f1832..721d8d7 100644 --- a/media/libmedia/JetPlayer.cpp +++ b/media/libmedia/JetPlayer.cpp @@ -36,7 +36,6 @@ JetPlayer::JetPlayer(void *javaJetPlayer, int maxTracks, int trackBufferSize) : mPaused(false), mMaxTracks(maxTracks), mEasData(NULL), - mEasJetFileLoc(NULL), mTrackBufferSize(trackBufferSize) { ALOGV("JetPlayer constructor"); @@ -133,10 +132,7 @@ int JetPlayer::release() JET_Shutdown(mEasData); EAS_Shutdown(mEasData); } - if (mEasJetFileLoc) { - free(mEasJetFileLoc); - mEasJetFileLoc = NULL; - } + mIoWrapper.clear(); if (mAudioTrack != 0) { mAudioTrack->stop(); mAudioTrack->flush(); @@ -327,16 +323,9 @@ int JetPlayer::loadFromFile(const char* path) Mutex::Autolock lock(mMutex); - mEasJetFileLoc = (EAS_FILE_LOCATOR) malloc(sizeof(EAS_FILE)); - strncpy(mJetFilePath, path, sizeof(mJetFilePath)); - mJetFilePath[sizeof(mJetFilePath) - 1] = '\0'; - mEasJetFileLoc->path = mJetFilePath; - - mEasJetFileLoc->fd = 0; - mEasJetFileLoc->length = 0; - mEasJetFileLoc->offset = 0; + mIoWrapper = new MidiIoWrapper(path); - EAS_RESULT result = JET_OpenFile(mEasData, mEasJetFileLoc); + EAS_RESULT result = JET_OpenFile(mEasData, mIoWrapper->getLocator()); if (result != EAS_SUCCESS) mState = EAS_STATE_ERROR; else @@ -352,13 +341,9 @@ int JetPlayer::loadFromFD(const int fd, const long long offset, const long long Mutex::Autolock lock(mMutex); - mEasJetFileLoc = (EAS_FILE_LOCATOR) malloc(sizeof(EAS_FILE)); - mEasJetFileLoc->fd = fd; - mEasJetFileLoc->offset = offset; - mEasJetFileLoc->length = length; - mEasJetFileLoc->path = NULL; + mIoWrapper = new MidiIoWrapper(fd, offset, length); - EAS_RESULT result = JET_OpenFile(mEasData, mEasJetFileLoc); + EAS_RESULT result = JET_OpenFile(mEasData, mIoWrapper->getLocator()); if (result != EAS_SUCCESS) mState = EAS_STATE_ERROR; else @@ -459,7 +444,6 @@ int JetPlayer::clearQueue() //------------------------------------------------------------------------------------------------- void JetPlayer::dump() { - ALOGE("JetPlayer dump: JET file=%s", mEasJetFileLoc->path); } void JetPlayer::dumpJetStatus(S_JET_STATUS* pJetStatus) |