summaryrefslogtreecommitdiffstats
path: root/media/libmedia/JetPlayer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libmedia/JetPlayer.cpp')
-rw-r--r--media/libmedia/JetPlayer.cpp77
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");
}