summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2011-11-17 07:14:41 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-11-17 07:14:41 -0800
commit1de4e2e1d7c22a31238e448200cbbe667cd5fa4c (patch)
tree52c2ccb321f13f15893766c0b66a4d21ee4bbdb5 /media
parent528312c36a3ded860ead1a512df51663d03767ff (diff)
parent90100b5573f95e8404c6e2917520e090fe8b49fd (diff)
downloadframeworks_av-1de4e2e1d7c22a31238e448200cbbe667cd5fa4c.zip
frameworks_av-1de4e2e1d7c22a31238e448200cbbe667cd5fa4c.tar.gz
frameworks_av-1de4e2e1d7c22a31238e448200cbbe667cd5fa4c.tar.bz2
Merge "MidiFile uses C++ Thread not createThreadEtc"
Diffstat (limited to 'media')
-rw-r--r--media/libmediaplayerservice/MidiFile.cpp8
-rw-r--r--media/libmediaplayerservice/MidiFile.h25
2 files changed, 26 insertions, 7 deletions
diff --git a/media/libmediaplayerservice/MidiFile.cpp b/media/libmediaplayerservice/MidiFile.cpp
index 85b1f9d..4946956 100644
--- a/media/libmediaplayerservice/MidiFile.cpp
+++ b/media/libmediaplayerservice/MidiFile.cpp
@@ -86,7 +86,8 @@ MidiFile::MidiFile() :
// create playback thread
{
Mutex::Autolock l(mMutex);
- createThreadEtc(renderThread, this, "midithread", ANDROID_PRIORITY_AUDIO);
+ mThread = new MidiFileThread(this);
+ mThread->run("midithread", ANDROID_PRIORITY_AUDIO);
mCondition.wait(mMutex);
ALOGV("thread started");
}
@@ -427,11 +428,6 @@ status_t MidiFile::createOutputTrack() {
return NO_ERROR;
}
-int MidiFile::renderThread(void* p) {
-
- return ((MidiFile*)p)->render();
-}
-
int MidiFile::render() {
EAS_RESULT result = EAS_FAILURE;
EAS_I32 count;
diff --git a/media/libmediaplayerservice/MidiFile.h b/media/libmediaplayerservice/MidiFile.h
index 3469389..2a0dcf9 100644
--- a/media/libmediaplayerservice/MidiFile.h
+++ b/media/libmediaplayerservice/MidiFile.h
@@ -24,6 +24,7 @@
namespace android {
+// Note that the name MidiFile is misleading; this actually represents a MIDI file player
class MidiFile : public MediaPlayerInterface {
public:
MidiFile();
@@ -65,7 +66,6 @@ public:
private:
status_t createOutputTrack();
status_t reset_nosync();
- static int renderThread(void*);
int render();
void updateState(){ EAS_State(mEasData, mEasHandle, &mState); }
@@ -84,6 +84,29 @@ private:
bool mPaused;
volatile bool mRender;
pid_t mTid;
+
+ class MidiFileThread : public Thread {
+ public:
+ MidiFileThread(MidiFile *midiPlayer) : mMidiFile(midiPlayer) {
+ }
+
+ protected:
+ virtual ~MidiFileThread() {}
+
+ private:
+ MidiFile *mMidiFile;
+
+ bool threadLoop() {
+ int result;
+ result = mMidiFile->render();
+ return false;
+ }
+
+ MidiFileThread(const MidiFileThread &);
+ MidiFileThread &operator=(const MidiFileThread &);
+ };
+
+ sp<MidiFileThread> mThread;
};
}; // namespace android