1873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood/*
2873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * Copyright (C) 2010 The Android Open Source Project
3873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood *
4873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * Licensed under the Apache License, Version 2.0 (the "License");
5873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * you may not use this file except in compliance with the License.
6873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * You may obtain a copy of the License at
7873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood *
8873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood *      http://www.apache.org/licenses/LICENSE-2.0
9873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood *
10873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * Unless required by applicable law or agreed to in writing, software
11873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * distributed under the License is distributed on an "AS IS" BASIS,
12873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * See the License for the specific language governing permissions and
14873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood * limitations under the License.
15873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood */
16873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
17873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#ifndef _MTP_EVENT_PACKET_H
18873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#define _MTP_EVENT_PACKET_H
19873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
20873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#include "MtpPacket.h"
21873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#include "mtp.h"
22873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
23bc1d4b41f4df1b6dd04801ea5a526d23f5321340Jerry Zhang#include <errno.h>
24bc1d4b41f4df1b6dd04801ea5a526d23f5321340Jerry Zhang
25487be61fb0a38873aec1d12da92437fba5e728f2Jerry Zhangclass IMtpHandle;
26487be61fb0a38873aec1d12da92437fba5e728f2Jerry Zhang
27873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwoodnamespace android {
28873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
29873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwoodclass MtpEventPacket : public MtpPacket {
30873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
31873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwoodpublic:
32873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood                        MtpEventPacket();
33873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood    virtual             ~MtpEventPacket();
34873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
35873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#ifdef MTP_DEVICE
36487be61fb0a38873aec1d12da92437fba5e728f2Jerry Zhang    // write our data to the given usb handle
37487be61fb0a38873aec1d12da92437fba5e728f2Jerry Zhang    int                 write(IMtpHandle *h);
38873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#endif
39873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
40873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#ifdef MTP_HOST
4142d0b79a787814d42e4c6f9dfe14f13cc0f6a758Mike Lockwood    // read our buffer with the given request
428a7ffae09a019de7109b30c505561c453910bde1Daichi Hirono    int                 sendRequest(struct usb_request *request);
438a7ffae09a019de7109b30c505561c453910bde1Daichi Hirono    int                 readResponse(struct usb_device *device);
44873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#endif
45873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
46873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood    inline MtpEventCode     getEventCode() const { return getContainerCode(); }
47873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood    inline void             setEventCode(MtpEventCode code)
48873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood                                                     { return setContainerCode(code); }
49873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood};
50873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
51873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood}; // namespace android
52873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood
53873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwood#endif // _MTP_EVENT_PACKET_H
54