1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_MEDIA_GALLERIES_WIN_MTP_DEVICE_OBJECT_ENTRY_H_
6#define CHROME_BROWSER_MEDIA_GALLERIES_WIN_MTP_DEVICE_OBJECT_ENTRY_H_
7
8#include <vector>
9
10#include "base/basictypes.h"
11#include "base/strings/string16.h"
12#include "base/time/time.h"
13
14// MTPDeviceObjectEntry contains the media transfer protocol device object
15// property values that are obtained using
16// IPortableDeviceProperties::GetValues().
17struct MTPDeviceObjectEntry {
18  MTPDeviceObjectEntry();  // Necessary for STL.
19  MTPDeviceObjectEntry(const base::string16& object_id,
20                       const base::string16& object_name,
21                       bool is_directory,
22                       int64 size,
23                       const base::Time& last_modified_time);
24
25  // The object identifier obtained using IEnumPortableDeviceObjectIDs::Next(),
26  // e.g. "o299".
27  base::string16 object_id;
28
29  // Friendly name of the object, e.g. "IMG_9911.jpeg".
30  base::string16 name;
31
32  // True if the current object is a directory/folder/album content type.
33  bool is_directory;
34
35  // The object file size in bytes, e.g. "882992".
36  int64 size;
37
38  // Last modified time of the object.
39  base::Time last_modified_time;
40};
41
42typedef std::vector<MTPDeviceObjectEntry> MTPDeviceObjectEntries;
43
44#endif  // CHROME_BROWSER_MEDIA_GALLERIES_WIN_MTP_DEVICE_OBJECT_ENTRY_H_
45