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 222a243f08193fe9ff1afe018e9953f01c44ced9deMarco Nelissen#include <media/DataSourceBase.h> 234bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 244bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Hubernamespace android { 254bbfff2dbf3968c267c3b2ea9f8912a38372a9daAndreas Huber 263d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissenclass MidiIoWrapper { 27e2b43843fd12783188edd2c54188ea8d26864788Vijay Venkatramanpublic: 283d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissen explicit MidiIoWrapper(const char *path); 293d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissen explicit MidiIoWrapper(int fd, off64_t offset, int64_t size); 303d21ae3fad5a894cf15f2e7e7a1d54d0f3d19db0Marco Nelissen explicit MidiIoWrapper(DataSourceBase *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; 432a243f08193fe9ff1afe018e9953f01c44ced9deMarco Nelissen DataSourceBase *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