116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood/* 216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Copyright (C) 2010 The Android Open Source Project 316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * 416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * you may not use this file except in compliance with the License. 616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * You may obtain a copy of the License at 716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * 816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * 1016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * Unless required by applicable law or agreed to in writing, software 1116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 1216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * See the License for the specific language governing permissions and 1416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood * limitations under the License. 1516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood */ 1616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 1716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#ifndef _MTP_REQUEST_PACKET_H 1816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#define _MTP_REQUEST_PACKET_H 1916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 2016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#include "MtpPacket.h" 2116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#include "mtp.h" 2216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 23487be61fb0a38873aec1d12da92437fba5e728f2Jerry Zhangclass IMtpHandle; 2442d0b79a787814d42e4c6f9dfe14f13cc0f6a758Mike Lockwoodstruct usb_request; 2542d0b79a787814d42e4c6f9dfe14f13cc0f6a758Mike Lockwood 267850ef999740f214a1990a9c090d3f3865d435aaMike Lockwoodnamespace android { 277850ef999740f214a1990a9c090d3f3865d435aaMike Lockwood 2816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwoodclass MtpRequestPacket : public MtpPacket { 2916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 3016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwoodpublic: 3116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood MtpRequestPacket(); 3216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood virtual ~MtpRequestPacket(); 3316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 3416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#ifdef MTP_DEVICE 35487be61fb0a38873aec1d12da92437fba5e728f2Jerry Zhang // fill our buffer with data from the given usb handle 36487be61fb0a38873aec1d12da92437fba5e728f2Jerry Zhang int read(IMtpHandle *h); 3716864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#endif 3816864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 3916864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#ifdef MTP_HOST 4016864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood // write our buffer to the given endpoint 4142d0b79a787814d42e4c6f9dfe14f13cc0f6a758Mike Lockwood int write(struct usb_request *request); 4216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#endif 4316864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 4416864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood inline MtpOperationCode getOperationCode() const { return getContainerCode(); } 4516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood inline void setOperationCode(MtpOperationCode code) 4616864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood { return setContainerCode(code); } 47ab063847e6e893740749029a04cce1f6b7345ed5Mike Lockwood inline int getParameterCount() const { return mParameterCount; } 48ab063847e6e893740749029a04cce1f6b7345ed5Mike Lockwood 49ab063847e6e893740749029a04cce1f6b7345ed5Mike Lockwoodprivate: 50ab063847e6e893740749029a04cce1f6b7345ed5Mike Lockwood int mParameterCount; 5116864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood}; 5216864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood 537850ef999740f214a1990a9c090d3f3865d435aaMike Lockwood}; // namespace android 547850ef999740f214a1990a9c090d3f3865d435aaMike Lockwood 5516864bae0f51c32c456da2c43adf7a057c0c4882Mike Lockwood#endif // _MTP_REQUEST_PACKET_H 56