156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood/* 256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Copyright (C) 2010 The Android Open Source Project 356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * you may not use this file except in compliance with the License. 656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * You may obtain a copy of the License at 756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * 1056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * Unless required by applicable law or agreed to in writing, software 1156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 1256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * See the License for the specific language governing permissions and 1456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood * limitations under the License. 1556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood */ 1656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 1756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#ifndef _MTP_REQUEST_PACKET_H 1856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#define _MTP_REQUEST_PACKET_H 1956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 2056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#include "MtpPacket.h" 2156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#include "mtp.h" 2256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 23215b682b8a02ac51d820b8e301d50431bdd09b3dMike Lockwoodstruct usb_request; 24215b682b8a02ac51d820b8e301d50431bdd09b3dMike Lockwood 258d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwoodnamespace android { 268d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood 2756118b5b385adad0ff301f67be2cf601432d94baMike Lockwoodclass MtpRequestPacket : public MtpPacket { 2856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 2956118b5b385adad0ff301f67be2cf601432d94baMike Lockwoodpublic: 3056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood MtpRequestPacket(); 3156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood virtual ~MtpRequestPacket(); 3256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 3356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#ifdef MTP_DEVICE 3456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood // fill our buffer with data from the given file descriptor 3556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood int read(int fd); 3656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#endif 3756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 3856118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#ifdef MTP_HOST 3956118b5b385adad0ff301f67be2cf601432d94baMike Lockwood // write our buffer to the given endpoint 40215b682b8a02ac51d820b8e301d50431bdd09b3dMike Lockwood int write(struct usb_request *request); 4156118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#endif 4256118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 4356118b5b385adad0ff301f67be2cf601432d94baMike Lockwood inline MtpOperationCode getOperationCode() const { return getContainerCode(); } 4456118b5b385adad0ff301f67be2cf601432d94baMike Lockwood inline void setOperationCode(MtpOperationCode code) 4556118b5b385adad0ff301f67be2cf601432d94baMike Lockwood { return setContainerCode(code); } 4656118b5b385adad0ff301f67be2cf601432d94baMike Lockwood}; 4756118b5b385adad0ff301f67be2cf601432d94baMike Lockwood 488d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood}; // namespace android 498d3257a7dc10e1b3fda03e00f40d1b65d699ff23Mike Lockwood 5056118b5b385adad0ff301f67be2cf601432d94baMike Lockwood#endif // _MTP_REQUEST_PACKET_H 51