/usr/include/mtp/MtpProperty.h is in libmtpserver-dev 0.0.3+14.04.20140409-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | /*
* 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_PROPERTY_H
#define _MTP_PROPERTY_H
#include "MtpTypes.h"
namespace android {
class MtpDataPacket;
struct MtpPropertyValue {
union {
int8_t i8;
uint8_t u8;
int16_t i16;
uint16_t u16;
int32_t i32;
uint32_t u32;
int64_t i64;
uint64_t u64;
int128_t i128;
uint128_t u128;
} u;
// string in UTF8 format
char* str;
};
class MtpProperty {
public:
MtpPropertyCode mCode;
MtpDataType mType;
bool mWriteable;
MtpPropertyValue mDefaultValue;
MtpPropertyValue mCurrentValue;
// for array types
int mDefaultArrayLength;
MtpPropertyValue* mDefaultArrayValues;
int mCurrentArrayLength;
MtpPropertyValue* mCurrentArrayValues;
enum {
kFormNone = 0,
kFormRange = 1,
kFormEnum = 2,
kFormDateTime = 3,
};
uint32_t mGroupCode;
uint8_t mFormFlag;
// for range form
MtpPropertyValue mMinimumValue;
MtpPropertyValue mMaximumValue;
MtpPropertyValue mStepSize;
// for enum form
int mEnumLength;
MtpPropertyValue* mEnumValues;
public:
MtpProperty();
MtpProperty(MtpPropertyCode propCode,
MtpDataType type,
bool writeable = false,
int defaultValue = 0);
virtual ~MtpProperty();
inline MtpPropertyCode getPropertyCode() const { return mCode; }
void read(MtpDataPacket& packet);
void write(MtpDataPacket& packet);
void setDefaultValue(const uint16_t* string);
void setCurrentValue(const uint16_t* string);
void setFormRange(int min, int max, int step);
void setFormEnum(const int* values, int count);
void setFormDateTime();
void print();
void print(MtpPropertyValue& value, MtpString& buffer);
inline bool isDeviceProperty() const {
return ( ((mCode & 0xF000) == 0x5000)
|| ((mCode & 0xF800) == 0xD000));
}
private:
void readValue(MtpDataPacket& packet, MtpPropertyValue& value);
void writeValue(MtpDataPacket& packet, MtpPropertyValue& value);
MtpPropertyValue* readArrayValues(MtpDataPacket& packet, int& length);
void writeArrayValues(MtpDataPacket& packet,
MtpPropertyValue* values, int length);
};
}; // namespace android
#endif // _MTP_PROPERTY_H
|