* Copyright 2008-2009 Haiku Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Pieter Panman
*/
#include "Device.h"
#include <iostream>
#include <Catalog.h>
#undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "Device"
const char* kCategoryString[] = {
B_TRANSLATE("Unclassified device"),
B_TRANSLATE("Mass storage controller"),
B_TRANSLATE("Network controller"),
B_TRANSLATE("Display controller"),
B_TRANSLATE("Multimedia controller"),
B_TRANSLATE("Memory controller"),
B_TRANSLATE("Bridge"),
B_TRANSLATE("Communication controller"),
B_TRANSLATE("Generic system peripheral"),
B_TRANSLATE("Input device controller"),
B_TRANSLATE("Docking station"),
B_TRANSLATE("Processor"),
B_TRANSLATE("Serial bus controller"),
B_TRANSLATE("Wireless controller"),
B_TRANSLATE("Intelligent controller"),
B_TRANSLATE("Satellite communications controller"),
B_TRANSLATE("Encryption controller"),
B_TRANSLATE("Signal processing controller"),
B_TRANSLATE("Computer"),
B_TRANSLATE("ACPI controller")
};
const int kCategoryStringLength = sizeof(kCategoryString)/sizeof(char *);
B_TRANSLATE_MARK_VOID("unknown");
B_TRANSLATE_MARK_VOID("Device");
B_TRANSLATE_MARK_VOID("Computer");
B_TRANSLATE_MARK_VOID("ACPI bus");
B_TRANSLATE_MARK_VOID("PCI bus");
B_TRANSLATE_MARK_VOID("ISA bus");
B_TRANSLATE_MARK_VOID("USB bus");
B_TRANSLATE_MARK_VOID("Unknown device");
Device::Device(Device* physicalParent, BusType busType, Category category,
const BString& name, const BString& manufacturer,
const BString& driverUsed, const BString& devPathsPublished)
:
BStringItem(name.String()),
fBusType(busType),
fCategory(category),
fPhysicalParent(physicalParent)
{
SetAttribute(B_TRANSLATE("Device name"), B_TRANSLATE(name));
SetAttribute(B_TRANSLATE("Manufacturer"), B_TRANSLATE(manufacturer));
SetAttribute(B_TRANSLATE("Driver used"), B_TRANSLATE(driverUsed));
SetAttribute(B_TRANSLATE("Device paths"), B_TRANSLATE(devPathsPublished));
}
Device::~Device()
{
}
BString
Device::GetName()
{
return fAttributeMap[B_TRANSLATE("Device name")];
}
BString
Device::GetManufacturer()
{
return fAttributeMap[B_TRANSLATE("Manufacturer")];
}
BString
Device::GetDriverUsed()
{
return fAttributeMap[B_TRANSLATE("Driver used")];
}
BString
Device::GetDevPathsPublished()
{
return fAttributeMap[B_TRANSLATE("Device paths")];
}
void
Device::SetAttribute(const BString& name, const BString& value)
{
if (name == B_TRANSLATE("Device name")) {
SetText(value.String());
}
fAttributeMap[name] = value;
}
Attributes
Device::GetAllAttributes()
{
Attributes attributes;
AttributeMapIterator iter;
for (iter = fAttributeMap.begin(); iter != fAttributeMap.end(); iter++) {
attributes.push_back(Attribute(iter->first, iter->second));
}
return attributes;
}
BString
Device::GetAllStrings()
{
BString str;
AttributeMapIterator iter;
for (iter = fAttributeMap.begin(); iter != fAttributeMap.end(); iter++) {
str << iter->first << " : " << iter->second << "\n";
}
return str;
}