diff options
Diffstat (limited to 'media/libmedia/JetPlayer.cpp')
-rw-r--r-- | media/libmedia/JetPlayer.cpp | 77 |
1 files changed, 34 insertions, 43 deletions
diff --git a/media/libmedia/JetPlayer.cpp b/media/libmedia/JetPlayer.cpp index 8b953e0..b1491b6 100644 --- a/media/libmedia/JetPlayer.cpp +++ b/media/libmedia/JetPlayer.cpp @@ -42,7 +42,7 @@ JetPlayer::JetPlayer(jobject javaJetPlayer, int maxTracks, int trackBufferSize) mAudioTrack(NULL), mTrackBufferSize(trackBufferSize) { - LOGV("JetPlayer constructor"); + ALOGV("JetPlayer constructor"); mPreviousJetStatus.currentUserID = -1; mPreviousJetStatus.segmentRepeatCount = -1; mPreviousJetStatus.numQueuedSegments = -1; @@ -52,7 +52,7 @@ JetPlayer::JetPlayer(jobject javaJetPlayer, int maxTracks, int trackBufferSize) //------------------------------------------------------------------------------------------------- JetPlayer::~JetPlayer() { - LOGV("~JetPlayer"); + ALOGV("~JetPlayer"); release(); } @@ -68,21 +68,21 @@ int JetPlayer::init() if (pLibConfig == NULL) pLibConfig = EAS_Config(); if (pLibConfig == NULL) { - LOGE("JetPlayer::init(): EAS library configuration could not be retrieved, aborting."); + ALOGE("JetPlayer::init(): EAS library configuration could not be retrieved, aborting."); return EAS_FAILURE; } // init the EAS library result = EAS_Init(&mEasData); if( result != EAS_SUCCESS) { - LOGE("JetPlayer::init(): Error initializing Sonivox EAS library, aborting."); + ALOGE("JetPlayer::init(): Error initializing Sonivox EAS library, aborting."); mState = EAS_STATE_ERROR; return result; } // init the JET library with the default app event controller range result = JET_Init(mEasData, NULL, sizeof(S_JET_CONFIG)); if( result != EAS_SUCCESS) { - LOGE("JetPlayer::init(): Error initializing JET library, aborting."); + ALOGE("JetPlayer::init(): Error initializing JET library, aborting."); mState = EAS_STATE_ERROR; return result; } @@ -99,16 +99,17 @@ int JetPlayer::init() // create render and playback thread { Mutex::Autolock l(mMutex); - LOGV("JetPlayer::init(): trying to start render thread"); - createThreadEtc(renderThread, this, "jetRenderThread", ANDROID_PRIORITY_AUDIO); + ALOGV("JetPlayer::init(): trying to start render thread"); + mThread = new JetPlayerThread(this); + mThread->run("jetRenderThread", ANDROID_PRIORITY_AUDIO); mCondition.wait(mMutex); } if (mTid > 0) { // render thread started, we're ready - LOGV("JetPlayer::init(): render thread(%d) successfully started.", mTid); + ALOGV("JetPlayer::init(): render thread(%d) successfully started.", mTid); mState = EAS_STATE_READY; } else { - LOGE("JetPlayer::init(): failed to start render thread."); + ALOGE("JetPlayer::init(): failed to start render thread."); mState = EAS_STATE_ERROR; return EAS_FAILURE; } @@ -125,7 +126,7 @@ void JetPlayer::setEventCallback(jetevent_callback eventCallback) //------------------------------------------------------------------------------------------------- int JetPlayer::release() { - LOGV("JetPlayer::release()"); + ALOGV("JetPlayer::release()"); Mutex::Autolock lock(mMutex); mPaused = true; mRender = false; @@ -156,33 +157,23 @@ int JetPlayer::release() //------------------------------------------------------------------------------------------------- -int JetPlayer::renderThread(void* p) { - - return ((JetPlayer*)p)->render(); -} - -//------------------------------------------------------------------------------------------------- int JetPlayer::render() { EAS_RESULT result = EAS_FAILURE; EAS_I32 count; int temp; bool audioStarted = false; - LOGV("JetPlayer::render(): entering"); + ALOGV("JetPlayer::render(): entering"); // allocate render buffer mAudioBuffer = new EAS_PCM[pLibConfig->mixBufferSize * pLibConfig->numChannels * MIX_NUM_BUFFERS]; - if (!mAudioBuffer) { - LOGE("JetPlayer::render(): mAudioBuffer allocate failed"); - goto threadExit; - } // signal main thread that we started { Mutex::Autolock l(mMutex); mTid = gettid(); - LOGV("JetPlayer::render(): render thread(%d) signal", mTid); + ALOGV("JetPlayer::render(): render thread(%d) signal", mTid); mCondition.signal(); } @@ -192,21 +183,21 @@ int JetPlayer::render() { if (mEasData == NULL) { mMutex.unlock(); - LOGV("JetPlayer::render(): NULL EAS data, exiting render."); + ALOGV("JetPlayer::render(): NULL EAS data, exiting render."); goto threadExit; } // nothing to render, wait for client thread to wake us up while (!mRender) { - LOGV("JetPlayer::render(): signal wait"); + ALOGV("JetPlayer::render(): signal wait"); if (audioStarted) { mAudioTrack->pause(); // we have to restart the playback once we start rendering again audioStarted = false; } mCondition.wait(mMutex); - LOGV("JetPlayer::render(): signal rx'd"); + ALOGV("JetPlayer::render(): signal rx'd"); } // render midi data into the input buffer @@ -215,7 +206,7 @@ int JetPlayer::render() { for (int i = 0; i < MIX_NUM_BUFFERS; i++) { result = EAS_Render(mEasData, p, pLibConfig->mixBufferSize, &count); if (result != EAS_SUCCESS) { - LOGE("JetPlayer::render(): EAS_Render returned error %ld", result); + ALOGE("JetPlayer::render(): EAS_Render returned error %ld", result); } p += count * pLibConfig->numChannels; num_output += count * pLibConfig->numChannels * sizeof(EAS_PCM); @@ -225,7 +216,7 @@ int JetPlayer::render() { } // update playback state - //LOGV("JetPlayer::render(): updating state"); + //ALOGV("JetPlayer::render(): updating state"); JET_Status(mEasData, &mJetStatus); fireUpdateOnStatusChange(); mPaused = mJetStatus.paused; @@ -234,20 +225,20 @@ int JetPlayer::render() { // check audio output track if (mAudioTrack == NULL) { - LOGE("JetPlayer::render(): output AudioTrack was not created"); + ALOGE("JetPlayer::render(): output AudioTrack was not created"); goto threadExit; } // Write data to the audio hardware - //LOGV("JetPlayer::render(): writing to audio output"); + //ALOGV("JetPlayer::render(): writing to audio output"); if ((temp = mAudioTrack->write(mAudioBuffer, num_output)) < 0) { - LOGE("JetPlayer::render(): Error in writing:%d",temp); + ALOGE("JetPlayer::render(): Error in writing:%d",temp); return temp; } // start audio output if necessary if (!audioStarted) { - LOGV("JetPlayer::render(): starting audio playback"); + ALOGV("JetPlayer::render(): starting audio playback"); mAudioTrack->start(); audioStarted = true; } @@ -338,13 +329,13 @@ void JetPlayer::fireEventsFromJetQueue() //------------------------------------------------------------------------------------------------- int JetPlayer::loadFromFile(const char* path) { - LOGV("JetPlayer::loadFromFile(): path=%s", path); + ALOGV("JetPlayer::loadFromFile(): path=%s", path); Mutex::Autolock lock(mMutex); mEasJetFileLoc = (EAS_FILE_LOCATOR) malloc(sizeof(EAS_FILE)); - memset(mJetFilePath, 0, 256); - strncpy(mJetFilePath, path, strlen(path)); + strncpy(mJetFilePath, path, sizeof(mJetFilePath)); + mJetFilePath[sizeof(mJetFilePath) - 1] = '\0'; mEasJetFileLoc->path = mJetFilePath; mEasJetFileLoc->fd = 0; @@ -363,7 +354,7 @@ int JetPlayer::loadFromFile(const char* path) //------------------------------------------------------------------------------------------------- int JetPlayer::loadFromFD(const int fd, const long long offset, const long long length) { - LOGV("JetPlayer::loadFromFD(): fd=%d offset=%lld length=%lld", fd, offset, length); + ALOGV("JetPlayer::loadFromFD(): fd=%d offset=%lld length=%lld", fd, offset, length); Mutex::Autolock lock(mMutex); @@ -393,7 +384,7 @@ int JetPlayer::closeFile() //------------------------------------------------------------------------------------------------- int JetPlayer::play() { - LOGV("JetPlayer::play(): entering"); + ALOGV("JetPlayer::play(): entering"); Mutex::Autolock lock(mMutex); EAS_RESULT result = JET_Play(mEasData); @@ -407,7 +398,7 @@ int JetPlayer::play() fireUpdateOnStatusChange(); // wake up render thread - LOGV("JetPlayer::play(): wakeup render thread"); + ALOGV("JetPlayer::play(): wakeup render thread"); mCondition.signal(); return result; @@ -435,7 +426,7 @@ int JetPlayer::pause() int JetPlayer::queueSegment(int segmentNum, int libNum, int repeatCount, int transpose, EAS_U32 muteFlags, EAS_U8 userID) { - LOGV("JetPlayer::queueSegment segmentNum=%d, libNum=%d, repeatCount=%d, transpose=%d", + ALOGV("JetPlayer::queueSegment segmentNum=%d, libNum=%d, repeatCount=%d, transpose=%d", segmentNum, libNum, repeatCount, transpose); Mutex::Autolock lock(mMutex); return JET_QueueSegment(mEasData, segmentNum, libNum, repeatCount, transpose, muteFlags, userID); @@ -458,7 +449,7 @@ int JetPlayer::setMuteFlag(int trackNum, bool muteFlag, bool sync) //------------------------------------------------------------------------------------------------- int JetPlayer::triggerClip(int clipId) { - LOGV("JetPlayer::triggerClip clipId=%d", clipId); + ALOGV("JetPlayer::triggerClip clipId=%d", clipId); Mutex::Autolock lock(mMutex); return JET_TriggerClip(mEasData, clipId); } @@ -466,7 +457,7 @@ int JetPlayer::triggerClip(int clipId) //------------------------------------------------------------------------------------------------- int JetPlayer::clearQueue() { - LOGV("JetPlayer::clearQueue"); + ALOGV("JetPlayer::clearQueue"); Mutex::Autolock lock(mMutex); return JET_Clear_Queue(mEasData); } @@ -474,17 +465,17 @@ int JetPlayer::clearQueue() //------------------------------------------------------------------------------------------------- void JetPlayer::dump() { - LOGE("JetPlayer dump: JET file=%s", mEasJetFileLoc->path); + ALOGE("JetPlayer dump: JET file=%s", mEasJetFileLoc->path); } void JetPlayer::dumpJetStatus(S_JET_STATUS* pJetStatus) { if(pJetStatus!=NULL) - LOGV(">> current JET player status: userID=%d segmentRepeatCount=%d numQueuedSegments=%d paused=%d", + ALOGV(">> current JET player status: userID=%d segmentRepeatCount=%d numQueuedSegments=%d paused=%d", pJetStatus->currentUserID, pJetStatus->segmentRepeatCount, pJetStatus->numQueuedSegments, pJetStatus->paused); else - LOGE(">> JET player status is NULL"); + ALOGE(">> JET player status is NULL"); } |