diff --git a/media/mtp/MtpClient.h b/media/mtp/MtpClient.h
new file mode 100644
index 0000000..fbbd388
--- /dev/null
+++ b/media/mtp/MtpClient.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _MTP_CLIENT_H
+#define _MTP_CLIENT_H
+
+#include "MtpRequestPacket.h"
+#include "MtpDataPacket.h"
+#include "MtpResponsePacket.h"
+#include "mtp.h"
+
+#include "MtpUtils.h"
+
+class MtpClient {
+private:
+    struct usb_endpoint *mEndpointIn;
+    struct usb_endpoint *mEndpointOut;
+    struct usb_endpoint *mEndpointIntr;
+
+    // current session ID
+    MtpSessionID        mSessionID;
+    // current transaction ID
+    MtpTransactionID    mTransactionID;
+
+    MtpRequestPacket    mRequest;
+    MtpDataPacket       mData;
+    MtpResponsePacket   mResponse;
+
+public:
+                        MtpClient(struct usb_endpoint *ep_in, struct usb_endpoint *ep_out,
+                                    struct usb_endpoint *ep_intr);
+    virtual             ~MtpClient();
+
+    bool                openSession();
+    bool                getDeviceInfo();
+    bool                closeSession();
+
+private:
+    bool                sendRequest(MtpOperationCode operation);
+    bool                sendData(MtpOperationCode operation);
+    bool                readData();
+    MtpResponseCode     readResponse();
+
+};
+
+#endif // _MTP_CLIENT_H
