1392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong/* 2392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** 3392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** Copyright 2009, The Android Open Source Project 4392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** 5392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** Licensed under the Apache License, Version 2.0 (the "License"); 6392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** you may not use this file except in compliance with the License. 7392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** You may obtain a copy of the License at 8392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** 9392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** http://www.apache.org/licenses/LICENSE-2.0 10392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** 11392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** Unless required by applicable law or agreed to in writing, software 12392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** distributed under the License is distributed on an "AS IS" BASIS, 13392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** See the License for the specific language governing permissions and 15392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong** limitations under the License. 16392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong*/ 17392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 18392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong#ifndef ANDROID_MIDIMETADATARETRIEVER_H 19392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong#define ANDROID_MIDIMETADATARETRIEVER_H 20392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 21392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong#include <utils/threads.h> 22392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong#include <utils/Errors.h> 23392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong#include <media/MediaMetadataRetrieverInterface.h> 24392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 25392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong#include "MidiFile.h" 26392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 27392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dongnamespace android { 28392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 29392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dongclass MidiMetadataRetriever : public MediaMetadataRetrieverInterface { 30392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dongpublic: 31392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong MidiMetadataRetriever() {} 32392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong ~MidiMetadataRetriever() {} 33392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 345b7ced6a4ebcec34a36d0779773bc9e671732dbfAndreas Huber virtual status_t setDataSource( 355b7ced6a4ebcec34a36d0779773bc9e671732dbfAndreas Huber const char *url, const KeyedVector<String8, String8> *headers); 365b7ced6a4ebcec34a36d0779773bc9e671732dbfAndreas Huber 37392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong virtual status_t setDataSource(int fd, int64_t offset, int64_t length); 38392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong virtual const char* extractMetadata(int keyCode); 39392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 40392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dongprivate: 41392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong static const uint32_t MAX_METADATA_STRING_LENGTH = 128; 42392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong void clearMetadataValues(); 43392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 44392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong Mutex mLock; 45392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong sp<MidiFile> mMidiPlayer; 46392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong char mMetadataValues[1][MAX_METADATA_STRING_LENGTH]; 47392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong}; 48392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 49392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong}; // namespace android 50392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong 51392ff3b5296e0cee8d5db386d2ef72e2719890c8James Dong#endif // ANDROID_MIDIMETADATARETRIEVER_H 52