BTRFS: Implement some copy relevant helpers.
[haiku.git] / src / apps / devices / Device.cpp
blobbc92b7b9139a8b69d87d3a774ec7ca73888c72f9
1 /*
2 * Copyright 2008-2009 Haiku Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
5 * Authors:
6 * Pieter Panman
7 */
10 #include "Device.h"
12 #include <iostream>
14 #include <Catalog.h>
16 #undef B_TRANSLATION_CONTEXT
17 #define B_TRANSLATION_CONTEXT "Device"
19 // This list comes from the pciid list, except for the last ones
20 const char* kCategoryString[] = {
21 B_TRANSLATE("Unclassified device"), // 0x00
22 B_TRANSLATE("Mass storage controller"), // 0x01
23 B_TRANSLATE("Network controller"), // 0x02
24 B_TRANSLATE("Display controller"), // 0x03
25 B_TRANSLATE("Multimedia controller"), // 0x04
26 B_TRANSLATE("Memory controller"), // 0x05
27 B_TRANSLATE("Bridge"), // 0x06
28 B_TRANSLATE("Communication controller"), // 0x07
29 B_TRANSLATE("Generic system peripheral"), // 0x08
30 B_TRANSLATE("Input device controller"), // 0x09
31 B_TRANSLATE("Docking station"), // 0x0a
32 B_TRANSLATE("Processor"), // 0x0b
33 B_TRANSLATE("Serial bus controller"), // 0x0c
34 B_TRANSLATE("Wireless controller"), // 0x0d
35 B_TRANSLATE("Intelligent controller"), // 0x0e
36 B_TRANSLATE("Satellite communications controller"), // 0x0f
37 B_TRANSLATE("Encryption controller"), // 0x10
38 B_TRANSLATE("Signal processing controller"), // 0x11
39 B_TRANSLATE("Computer"), // 0x12 (added later)
40 B_TRANSLATE("ACPI controller") // 0x13 (added later)
42 const int kCategoryStringLength = sizeof(kCategoryString)/sizeof(char *);
44 // This list is only used to translate Device properties
45 B_TRANSLATE_MARK_VOID("unknown");
46 B_TRANSLATE_MARK_VOID("Device");
47 B_TRANSLATE_MARK_VOID("Computer");
48 B_TRANSLATE_MARK_VOID("ACPI bus");
49 B_TRANSLATE_MARK_VOID("PCI bus");
50 B_TRANSLATE_MARK_VOID("ISA bus");
51 B_TRANSLATE_MARK_VOID("Unknown device");
54 Device::Device(Device* physicalParent, BusType busType, Category category,
55 const BString& name, const BString& manufacturer,
56 const BString& driverUsed, const BString& devPathsPublished)
58 BStringItem(name.String()),
59 fBusType(busType),
60 fCategory(category),
61 fPhysicalParent(physicalParent)
63 SetAttribute(B_TRANSLATE("Device name"), B_TRANSLATE(name));
64 SetAttribute(B_TRANSLATE("Manufacturer"), B_TRANSLATE(manufacturer));
65 SetAttribute(B_TRANSLATE("Driver used"), B_TRANSLATE(driverUsed));
66 SetAttribute(B_TRANSLATE("Device paths"), B_TRANSLATE(devPathsPublished));
70 Device::~Device()
75 BString
76 Device::GetName()
78 return fAttributeMap[B_TRANSLATE("Device name")];
82 BString
83 Device::GetManufacturer()
85 return fAttributeMap[B_TRANSLATE("Manufacturer")];
89 BString
90 Device::GetDriverUsed()
92 return fAttributeMap[B_TRANSLATE("Driver used")];
96 BString
97 Device::GetDevPathsPublished()
99 return fAttributeMap[B_TRANSLATE("Device paths")];
103 void
104 Device::SetAttribute(const BString& name, const BString& value)
106 if (name == B_TRANSLATE("Device name")) {
107 SetText(value.String());
109 fAttributeMap[name] = value;
113 Attributes
114 Device::GetBasicAttributes()
116 Attributes attributes;
117 attributes.push_back(Attribute(B_TRANSLATE("Device name:"), GetName()));
118 attributes.push_back(Attribute(B_TRANSLATE("Manufacturer:"),
119 GetManufacturer()));
120 return attributes;
124 Attributes
125 Device::GetBusAttributes()
127 Attributes attributes;
128 attributes.push_back(Attribute("None", ""));
129 return attributes;
133 Attributes
134 Device::GetAllAttributes()
136 Attributes attributes;
137 AttributeMapIterator iter;
138 for (iter = fAttributeMap.begin(); iter != fAttributeMap.end(); iter++) {
139 attributes.push_back(Attribute(iter->first, iter->second));
141 return attributes;
145 BString
146 Device::GetBasicStrings()
148 BString str(B_TRANSLATE("Device Name\t\t\t\t: %Name%\n"
149 "Manufacturer\t\t\t: %Manufacturer%\n"
150 "Driver used\t\t\t\t: %DriverUsed%\n"
151 "Device paths\t: %DevicePaths%"));
153 str.ReplaceFirst("%Name%", GetName());
154 str.ReplaceFirst("%Manufacturer%", GetManufacturer());
155 str.ReplaceFirst("%DriverUsed%", GetDriverUsed());
156 str.ReplaceFirst("%DevicePaths%", GetDevPathsPublished());
158 return str;
161 BString
162 Device::GetBusStrings()
164 return B_TRANSLATE("None");
168 BString
169 Device::GetBusTabName()
171 return B_TRANSLATE("Bus Information");
175 BString
176 Device::GetAllStrings()
178 BString str;
179 AttributeMapIterator iter;
180 for (iter = fAttributeMap.begin(); iter != fAttributeMap.end(); iter++) {
181 str << iter->first << " : " << iter->second << "\n";
183 return str;