blob: 5a05198818a8c231f012e9fb8311f43eedc1800a [file] [log] [blame]
Ryan Cairnsea6505f2011-04-10 19:54:53 -07001// Copyright (c) 2011 The Chromium OS 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
Ben Chanbdc39742011-05-11 17:51:26 -07005#include "cros-disks/disk.h"
Ryan Cairnsea6505f2011-04-10 19:54:53 -07006
Ben Chan29be9152011-07-25 14:39:48 -07007#include <algorithm>
8
Anand K Mistry40cff452019-07-30 10:24:48 +10009namespace cros_disks {
Ben Chan460439f2011-09-13 09:16:28 -070010namespace {
Ryan Cairnsea6505f2011-04-10 19:54:53 -070011
Ben Chanec4eaab2012-02-05 23:26:58 -080012const char kUSBDriveName[] = "USB Drive";
13const char kSDCardName[] = "SD Card";
14const char kOpticalDiscName[] = "Optical Disc";
15const char kMobileDeviceName[] = "Mobile Device";
Ben Chan7d8f9f72012-05-02 10:02:20 -070016const char kDVDName[] = "DVD";
Ben Chanec4eaab2012-02-05 23:26:58 -080017const char kFallbackPresentationName[] = "External Drive";
Ben Chan29be9152011-07-25 14:39:48 -070018
Ben Chan460439f2011-09-13 09:16:28 -070019} // namespace
20
Ben Chanf51ff002011-04-25 12:41:57 -070021Disk::Disk()
Ben Chanff92fa32017-10-17 16:17:15 -070022 : is_drive(false),
23 is_hidden(false),
24 is_auto_mountable(false),
25 is_media_available(false),
26 is_on_boot_device(true),
27 is_on_removable_device(false),
28 is_rotational(false),
29 is_read_only(false),
30 is_virtual(true),
31 media_type(DEVICE_MEDIA_UNKNOWN),
32 device_capacity(0),
33 bytes_remaining(0) {}
Ryan Cairnsea6505f2011-04-10 19:54:53 -070034
Ben Chan213c6d92019-04-10 16:21:52 -070035std::string Disk::GetPresentationName() const {
Ben Chanff92fa32017-10-17 16:17:15 -070036 if (!label.empty()) {
Ben Chan213c6d92019-04-10 16:21:52 -070037 std::string name = label;
Ben Chanec4eaab2012-02-05 23:26:58 -080038 std::replace(name.begin(), name.end(), '/', '_');
39 return name;
40 }
Ben Chan29be9152011-07-25 14:39:48 -070041
Ben Chanff92fa32017-10-17 16:17:15 -070042 switch (media_type) {
Ben Chanec4eaab2012-02-05 23:26:58 -080043 case DEVICE_MEDIA_USB:
44 return kUSBDriveName;
45 case DEVICE_MEDIA_SD:
46 return kSDCardName;
47 case DEVICE_MEDIA_OPTICAL_DISC:
48 return kOpticalDiscName;
49 case DEVICE_MEDIA_MOBILE:
50 return kMobileDeviceName;
Ben Chan7d8f9f72012-05-02 10:02:20 -070051 case DEVICE_MEDIA_DVD:
52 return kDVDName;
Ben Chanec4eaab2012-02-05 23:26:58 -080053 default:
54 return kFallbackPresentationName;
55 }
Ben Chan29be9152011-07-25 14:39:48 -070056}
57
Ben Chanbdc39742011-05-11 17:51:26 -070058} // namespace cros_disks