diff options
Diffstat (limited to 'media/libmediaplayerservice/MidiFile.h')
-rw-r--r-- | media/libmediaplayerservice/MidiFile.h | 25 |
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 |