summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/MidiFile.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/libmediaplayerservice/MidiFile.h')
-rw-r--r--media/libmediaplayerservice/MidiFile.h25
1 files changed, 24 insertions, 1 deletions
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