14bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber/* 24bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * Copyright (C) 2014 The Android Open Source Project 34bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * 44bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 54bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * you may not use this file except in compliance with the License. 64bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * You may obtain a copy of the License at 74bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * 84bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 94bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * 104bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * Unless required by applicable law or agreed to in writing, software 114bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 124bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * See the License for the specific language governing permissions and 144bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber * limitations under the License. 154bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber */ 164bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 17e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman#ifndef MIDI_IO_WRAPPER_H_ 18e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman#define MIDI_IO_WRAPPER_H_ 194bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 20e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman#include <libsonivox/eas_types.h> 214bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 22e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman#include "media/stagefright/DataSource.h" 234bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 244bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Hubernamespace android { 254bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 26e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatramanclass MidiIoWrapper : public RefBase { 27e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatramanpublic: 28e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman MidiIoWrapper(const char *path); 29e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman MidiIoWrapper(int fd, off64_t offset, int64_t size); 30e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman MidiIoWrapper(const sp<DataSource> &source); 314bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 32e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman ~MidiIoWrapper(); 334bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 34e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman int readAt(void *buffer, int offset, int size); 35e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman int size(); 364bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 37e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman EAS_FILE_LOCATOR getLocator(); 384bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 394bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huberprivate: 40e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman int mFd; 41e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman off64_t mBase; 42e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman int64_t mLength; 43e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman sp<DataSource> mDataSource; 44e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman EAS_FILE mEasFile; 454bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber}; 464bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 474bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 48e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman} // namespace android 494bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 50e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatraman#endif // MIDI_IO_WRAPPER_H_ 51