MidiFile.h revision 2db8455d8f4468a637109d31f319ce02d9d743ec
189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project/* 289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** 389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** Copyright 2008, The Android Open Source Project 489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** 589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License"); 689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** you may not use this file except in compliance with the License. 789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** You may obtain a copy of the License at 889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** 989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** http://www.apache.org/licenses/LICENSE-2.0 1089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** 1189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** Unless required by applicable law or agreed to in writing, software 1289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS, 1389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** See the License for the specific language governing permissions and 1589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project** limitations under the License. 1689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project*/ 1789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 1889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#ifndef ANDROID_MIDIFILE_H 1989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#define ANDROID_MIDIFILE_H 2089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 2189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#include <media/MediaPlayerInterface.h> 2289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#include <media/AudioTrack.h> 2389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#include <libsonivox/eas.h> 2489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 2589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectnamespace android { 2689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 2789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectclass MidiFile : public MediaPlayerInterface { 2889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectpublic: 2989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project MidiFile(); 3089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project ~MidiFile(); 3189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 3289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t initCheck(); 332db8455d8f4468a637109d31f319ce02d9d743ecAndreas Huber 342db8455d8f4468a637109d31f319ce02d9d743ecAndreas Huber virtual status_t setDataSource( 352db8455d8f4468a637109d31f319ce02d9d743ecAndreas Huber const char* path, const KeyedVector<String8, String8> *headers); 362db8455d8f4468a637109d31f319ce02d9d743ecAndreas Huber 3789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setDataSource(int fd, int64_t offset, int64_t length); 3889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setVideoSurface(const sp<ISurface>& surface) { return UNKNOWN_ERROR; } 3989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t prepare(); 4089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t prepareAsync(); 4189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t start(); 4289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t stop(); 4389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t seekTo(int msec); 4489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t pause(); 4589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual bool isPlaying(); 4689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t getCurrentPosition(int* msec); 4789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t getDuration(int* msec); 4889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t release(); 4989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t reset(); 5089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual status_t setLooping(int loop); 5189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project virtual player_type playerType() { return SONIVOX_PLAYER; } 52d608a813a9d2cbc6e2a5ea81d78d4a9044090c4cniko virtual status_t invoke(const Parcel& request, Parcel *reply) { 53d608a813a9d2cbc6e2a5ea81d78d4a9044090c4cniko return INVALID_OPERATION; 54d608a813a9d2cbc6e2a5ea81d78d4a9044090c4cniko } 5589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 5689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Projectprivate: 5789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project status_t createOutputTrack(); 5889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project status_t reset_nosync(); 5989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project static int renderThread(void*); 6089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project int render(); 6189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project void updateState(){ EAS_State(mEasData, mEasHandle, &mState); } 6289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 6389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project Mutex mMutex; 6489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project Condition mCondition; 6589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project EAS_DATA_HANDLE mEasData; 6689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project EAS_HANDLE mEasHandle; 6789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project EAS_PCM* mAudioBuffer; 6889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project EAS_I32 mPlayTime; 6989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project EAS_I32 mDuration; 7089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project EAS_STATE mState; 7189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project EAS_FILE mFileLocator; 7289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project int mStreamType; 7389fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project bool mLoop; 7489fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project volatile bool mExit; 7589fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project bool mPaused; 7689fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project volatile bool mRender; 7789fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project pid_t mTid; 7889fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project}; 7989fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 8089fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project}; // namespace android 8189fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project 8289fa4ad53f2f4d57adbc97ae1149fc00c9b6f3c5The Android Open Source Project#endif // ANDROID_MIDIFILE_H 83