108b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen/* 208b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * Copyright (C) 2014 The Android Open Source Project 308b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * 408b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * Licensed under the Apache License, Version 2.0 (the "License"); 508b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * you may not use this file except in compliance with the License. 608b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * You may obtain a copy of the License at 708b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * 808b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * http://www.apache.org/licenses/LICENSE-2.0 908b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * 1008b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * Unless required by applicable law or agreed to in writing, software 1108b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * distributed under the License is distributed on an "AS IS" BASIS, 1208b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1308b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * See the License for the specific language governing permissions and 1408b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen * limitations under the License. 1508b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen */ 1608b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 1708b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen#ifndef MIDI_IO_WRAPPER_H_ 1808b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen#define MIDI_IO_WRAPPER_H_ 1908b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 2008b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen#include <libsonivox/eas_types.h> 2108b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 22faf4efc6a41e88adf85f76f48f020a6d681f5ff1Marco Nelissen#include "media/stagefright/DataSource.h" 23faf4efc6a41e88adf85f76f48f020a6d681f5ff1Marco Nelissen 2408b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissennamespace android { 2508b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 2608b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissenclass MidiIoWrapper : public RefBase { 2708b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissenpublic: 2808b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen MidiIoWrapper(const char *path); 2908b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen MidiIoWrapper(int fd, off64_t offset, int64_t size); 30faf4efc6a41e88adf85f76f48f020a6d681f5ff1Marco Nelissen MidiIoWrapper(const sp<DataSource> &source); 3108b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 3208b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen ~MidiIoWrapper(); 3308b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 3408b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen int readAt(void *buffer, int offset, int size); 3508b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen int size(); 3608b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 3708b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen EAS_FILE_LOCATOR getLocator(); 3808b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 3908b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissenprivate: 4008b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen int mFd; 4108b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen off64_t mBase; 4208b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen int64_t mLength; 43faf4efc6a41e88adf85f76f48f020a6d681f5ff1Marco Nelissen sp<DataSource> mDataSource; 4408b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen EAS_FILE mEasFile; 4508b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen}; 4608b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 4708b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 4808b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen} // namespace android 4908b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen 5008b9e2d113213c37506a416bc95a36789bcab4caMarco Nelissen#endif // MIDI_IO_WRAPPER_H_ 51