| /* |
| * 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. |
| */ |
| |
| #include <stdlib.h> |
| |
| #include "MtpDataPacket.h" |
| #include "MtpStorageInfo.h" |
| #include "MtpStringBuffer.h" |
| |
| namespace android { |
| |
| MtpStorageInfo::MtpStorageInfo(MtpStorageID id) |
| : mStorageID(id), |
| mStorageType(0), |
| mFileSystemType(0), |
| mAccessCapability(0), |
| mMaxCapacity(0), |
| mFreeSpaceBytes(0), |
| mFreeSpaceObjects(0), |
| mStorageDescription(NULL), |
| mVolumeIdentifier(NULL) |
| { |
| } |
| |
| MtpStorageInfo::~MtpStorageInfo() { |
| if (mStorageDescription) |
| free(mStorageDescription); |
| if (mVolumeIdentifier) |
| free(mVolumeIdentifier); |
| } |
| |
| void MtpStorageInfo::read(MtpDataPacket& packet) { |
| MtpStringBuffer string; |
| |
| // read the device info |
| mStorageType = packet.getUInt16(); |
| mFileSystemType = packet.getUInt16(); |
| mAccessCapability = packet.getUInt16(); |
| mMaxCapacity = packet.getUInt64(); |
| mFreeSpaceBytes = packet.getUInt64(); |
| mFreeSpaceObjects = packet.getUInt32(); |
| |
| packet.getString(string); |
| mStorageDescription = strdup((const char *)string); |
| packet.getString(string); |
| mVolumeIdentifier = strdup((const char *)string); |
| } |
| |
| void MtpStorageInfo::print() { |
| printf("Storage Info %08X:\n\tmStorageType: %d\n\tmFileSystemType: %d\n\tmAccessCapability: %d\n", |
| mStorageID, mStorageType, mFileSystemType, mAccessCapability); |
| printf("\tmMaxCapacity: %lld\n\tmFreeSpaceBytes: %lld\n\tmFreeSpaceObjects: %d\n", |
| mMaxCapacity, mFreeSpaceBytes, mFreeSpaceObjects); |
| printf("\tmStorageDescription: %s\n\tmVolumeIdentifier: %s\n", |
| mStorageDescription, mVolumeIdentifier); |
| } |
| |
| } // namespace android |