1335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood/* 2335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * Copyright (C) 2010 The Android Open Source Project 3335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * 4335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * Licensed under the Apache License, Version 2.0 (the "License"); 5335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * you may not use this file except in compliance with the License. 6335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * You may obtain a copy of the License at 7335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * 8335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * http://www.apache.org/licenses/LICENSE-2.0 9335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * 10335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * Unless required by applicable law or agreed to in writing, software 11335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * distributed under the License is distributed on an "AS IS" BASIS, 12335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * See the License for the specific language governing permissions and 14335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood * limitations under the License. 15335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood */ 16335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 17335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood#ifndef _MTP_TYPES_H 18335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood#define _MTP_TYPES_H 19335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 20335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood#include <stdint.h> 21335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood#include "utils/String8.h" 22335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood#include "utils/Vector.h" 23335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 24335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodnamespace android { 25335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 26a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef int32_t int128_t[4]; 27a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef uint32_t uint128_t[4]; 28a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwood 29335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef uint16_t MtpOperationCode; 30335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef uint16_t MtpResponseCode; 31873871f3e75831bcda6c3f75bb4d53355ca5c53aMike Lockwoodtypedef uint16_t MtpEventCode; 32335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef uint32_t MtpSessionID; 33335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef uint32_t MtpStorageID; 34335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef uint32_t MtpTransactionID; 35a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef uint16_t MtpPropertyCode; 36a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef uint16_t MtpDataType; 37335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef uint16_t MtpObjectFormat; 38a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef MtpPropertyCode MtpDeviceProperty; 39a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef MtpPropertyCode MtpObjectProperty; 40335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 41335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood// object handles are unique across all storage but only within a single session. 42335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood// object handles cannot be reused after an object is deleted. 43335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood// values 0x00000000 and 0xFFFFFFFF are reserved for special purposes. 44335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef uint32_t MtpObjectHandle; 45335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 46e13401bf532c7e4bf9ab82c7e9b13642838a927dMike Lockwood// Special values 47e13401bf532c7e4bf9ab82c7e9b13642838a927dMike Lockwood#define MTP_PARENT_ROOT 0xFFFFFFFF // parent is root of the storage 48335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood#define kInvalidObjectHandle 0xFFFFFFFF 49335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 50335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodclass MtpStorage; 515ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodclass MtpDevice; 52a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodclass MtpProperty; 53335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 545ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<MtpStorage *> MtpStorageList; 555ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<MtpDevice*> MtpDeviceList; 56a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef Vector<MtpProperty*> MtpPropertyList; 57335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 585ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<uint8_t> UInt8List; 59a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef Vector<uint16_t> UInt16List; 605ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<uint32_t> UInt32List; 615ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<uint64_t> UInt64List; 625ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<int8_t> Int8List; 63a6c490b8b2d96ebaab632286029463f932ae3b6bMike Lockwoodtypedef Vector<int16_t> Int16List; 645ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<int32_t> Int32List; 655ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef Vector<int64_t> Int64List; 66335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 67782aef17c9921a3bf401a0432878df5031f2328bMike Lockwoodtypedef UInt16List MtpObjectPropertyList; 68335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef UInt16List MtpDevicePropertyList; 69335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef UInt16List MtpObjectFormatList; 70335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef UInt32List MtpObjectHandleList; 71335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef UInt16List MtpObjectPropertyList; 72335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwoodtypedef UInt32List MtpStorageIDList; 73335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 745ed68d29a140e14c8d46980fa844548eb33b1e87Mike Lockwoodtypedef String8 MtpString; 75335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 76335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood}; // namespace android 77335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood 78335dd2be955607f2632eabc25045857f2cc8b674Mike Lockwood#endif // _MTP_TYPES_H 79