1df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang/* 2df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * Copyright (C) 2017 The Android Open Source Project 3df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * 4df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 5df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * you may not use this file except in compliance with the License. 6df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * You may obtain a copy of the License at 7df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * 8df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * http://www.apache.org/licenses/LICENSE-2.0 9df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * 10df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * Unless required by applicable law or agreed to in writing, software 11df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * distributed under the License is distributed on an "AS IS" BASIS, 12df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * See the License for the specific language governing permissions and 14df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang * limitations under the License. 15df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang */ 16df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 17df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang#ifndef _MTP_DEV_HANDLE_H 18df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang#define _MTP_DEV_HANDLE_H 19df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 20df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang#include <android-base/unique_fd.h> 21df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang#include "IMtpHandle.h" 22df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 23df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhangnamespace android { 24df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 25df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhangclass MtpDevHandle : public IMtpHandle { 26df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhangprivate: 27df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang android::base::unique_fd mFd; 28df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 29df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhangpublic: 30df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang MtpDevHandle(); 31df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang ~MtpDevHandle(); 32df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang int read(void *data, size_t len); 33df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang int write(const void *data, size_t len); 34df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 35df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang int receiveFile(mtp_file_range mfr, bool); 36df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang int sendFile(mtp_file_range mfr); 37df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang int sendEvent(mtp_event me); 38df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 3963dac45aa868b9048c028967e9865c90a9ba544dJerry Zhang int start(bool ptp); 40df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang void close(); 41df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang}; 42df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 43df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang} // namespace android 44df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang 45df69dd33b4d8a2f9926b5eaccbf53ee7f67475c2Jerry Zhang#endif // _MTP_FFS_HANDLE_H 46