MTP: Fix reading and writing property descriptors

We were missing support for the group code, resulting in an off by 4 bytes problem.

Change-Id: I4a640c67b8d36e1bd658b6185178a71966d4b0b6
Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2010-08-09 14:49:28 -04:00
parent d3793f38f9
commit 97c8d9046e
2 changed files with 6 additions and 0 deletions

View File

@@ -31,6 +31,7 @@ MtpProperty::MtpProperty()
mDefaultArrayValues(NULL),
mCurrentArrayLength(0),
mCurrentArrayValues(NULL),
mGroupCode(0),
mFormFlag(kFormNone),
mEnumLength(0),
mEnumValues(NULL)
@@ -52,6 +53,7 @@ MtpProperty::MtpProperty(MtpPropertyCode propCode,
mDefaultArrayValues(NULL),
mCurrentArrayLength(0),
mCurrentArrayValues(NULL),
mGroupCode(0),
mFormFlag(kFormNone),
mEnumLength(0),
mEnumValues(NULL)
@@ -142,6 +144,7 @@ void MtpProperty::read(MtpDataPacket& packet, bool deviceProp) {
if (deviceProp)
readValue(packet, mCurrentValue);
}
mGroupCode = packet.getUInt32();
mFormFlag = packet.getUInt8();
if (mFormFlag == kFormRange) {
@@ -178,6 +181,7 @@ void MtpProperty::write(MtpDataPacket& packet) {
default:
writeValue(packet, mDefaultValue);
}
packet.putUInt32(mGroupCode);
packet.putUInt8(mFormFlag);
if (mFormFlag == kFormRange) {
writeValue(packet, mMinimumValue);

View File

@@ -42,6 +42,8 @@ public:
kFormRange = 1,
kFormEnum = 2,
};
uint32_t mGroupCode;
uint8_t mFormFlag;
// for range form