/* * Copyright 2008-2009 Haiku Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * Pieter Panman */ #include "Device.h" #include #include #undef B_TRANSLATION_CONTEXT #define B_TRANSLATION_CONTEXT "Device" // This list comes from the pciid list, except for the last ones const char* kCategoryString[] = { B_TRANSLATE("Unclassified device"), // 0x00 B_TRANSLATE("Mass storage controller"), // 0x01 B_TRANSLATE("Network controller"), // 0x02 B_TRANSLATE("Display controller"), // 0x03 B_TRANSLATE("Multimedia controller"), // 0x04 B_TRANSLATE("Memory controller"), // 0x05 B_TRANSLATE("Bridge"), // 0x06 B_TRANSLATE("Communication controller"), // 0x07 B_TRANSLATE("Generic system peripheral"), // 0x08 B_TRANSLATE("Input device controller"), // 0x09 B_TRANSLATE("Docking station"), // 0x0a B_TRANSLATE("Processor"), // 0x0b B_TRANSLATE("Serial bus controller"), // 0x0c B_TRANSLATE("Wireless controller"), // 0x0d B_TRANSLATE("Intelligent controller"), // 0x0e B_TRANSLATE("Satellite communications controller"), // 0x0f B_TRANSLATE("Encryption controller"), // 0x10 B_TRANSLATE("Signal processing controller"), // 0x11 B_TRANSLATE("Computer"), // 0x12 (added later) B_TRANSLATE("ACPI controller") // 0x13 (added later) }; const int kCategoryStringLength = sizeof(kCategoryString)/sizeof(char *); // This list is only used to translate Device properties 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; }