| // Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef MTPD_STORAGE_INFO_H_ |
| #define MTPD_STORAGE_INFO_H_ |
| |
| #include <libmtp.h> |
| |
| #include <string> |
| #include <vector> |
| |
| #include <base/macros.h> |
| |
| namespace mtpd { |
| |
| class StorageInfo { |
| public: |
| StorageInfo(const std::string& storage_name, |
| const LIBMTP_device_entry_t& device, |
| const LIBMTP_devicestorage_t& storage, |
| const std::string& fallback_vendor, |
| const std::string& fallback_product); |
| StorageInfo(); |
| ~StorageInfo(); |
| |
| void Update(const LIBMTP_devicestorage_t& storage); |
| std::vector<uint8_t> ToDBusFormat() const; |
| |
| private: |
| std::string storage_name_; |
| |
| // From LIBMTP_device_entry_t. |
| std::string vendor_; |
| uint16_t vendor_id_; |
| std::string product_; |
| uint16_t product_id_; |
| uint32_t device_flags_; |
| |
| // From LIBMTP_devicestorage_t. |
| uint16_t storage_type_; |
| uint16_t filesystem_type_; |
| uint16_t access_capability_; |
| uint64_t max_capacity_; |
| uint64_t free_space_in_bytes_; |
| uint64_t free_space_in_objects_; |
| std::string storage_description_; |
| std::string volume_identifier_; |
| }; |
| |
| } // namespace mtpd |
| |
| #endif // MTPD_STORAGE_INFO_H_ |