123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /*
- * 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.
- */
- #define LOG_TAG "MtpStorageInfo"
- #include <inttypes.h>
- #include "MtpDebug.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);
- }
- bool MtpStorageInfo::read(MtpDataPacket& packet) {
- MtpStringBuffer string;
- // read the device info
- if (!packet.getUInt16(mStorageType)) return false;
- if (!packet.getUInt16(mFileSystemType)) return false;
- if (!packet.getUInt16(mAccessCapability)) return false;
- if (!packet.getUInt64(mMaxCapacity)) return false;
- if (!packet.getUInt64(mFreeSpaceBytes)) return false;
- if (!packet.getUInt32(mFreeSpaceObjects)) return false;
- if (!packet.getString(string)) return false;
- mStorageDescription = strdup((const char *)string);
- if (!mStorageDescription) return false;
- if (!packet.getString(string)) return false;
- mVolumeIdentifier = strdup((const char *)string);
- if (!mVolumeIdentifier) return false;
- return true;
- }
- void MtpStorageInfo::print() {
- ALOGD("Storage Info %08X:\n\tmStorageType: %d\n\tmFileSystemType: %d\n\tmAccessCapability: %d\n",
- mStorageID, mStorageType, mFileSystemType, mAccessCapability);
- ALOGD("\tmMaxCapacity: %" PRIu64 "\n\tmFreeSpaceBytes: %" PRIu64 "\n\tmFreeSpaceObjects: %d\n",
- mMaxCapacity, mFreeSpaceBytes, mFreeSpaceObjects);
- ALOGD("\tmStorageDescription: %s\n\tmVolumeIdentifier: %s\n",
- mStorageDescription, mVolumeIdentifier);
- }
- } // namespace android
|