1Each device has: 2- Name (long/short) 3- Manufacturer (long/short) 4- Category (one master list, each bus type maps its device types onto the master list) 5- Driver used 6- Device paths 7- Its bus type 8- Its connection parent, if applicable 9 10Each source has: (currently the RescanDevices method does this) 11- Init function 12- Scan method that returns the devices. 13- DevManSource, USBSource, FWSource, ... 14 15DeviceManager Specification 16=========================== 17 18DeviceManager : BApplication 19------------- 20 21DeviceManagerView : BView 22----------------- 23 24 25Device : public BStringItem 26------ 27BString GetName() const; 28BString GetManufacturer() const; 29Category GetCategory() const; 30BString DriverUsed() const; 31BString DevPathsPublished() const; 32BView Get 33private: 34BString _name; 35BString _manufacturer; 36Category _category; 37BString _driverUsed; 38BString devPathsPublished; 39map<BString, BString> _attributes; 40 41Bus : public BStringItem 42--- 43virtual bool IsPresent() const = 0; 44virtual Scan() = 0; 45virtual vector<Device *> Devices() = 0; 46 47PCIBus : public Bus 48------ 49 50PCIDevice: public Device 51--------- 52 53ISABus : public Bus 54----- 55 56ISADevice : public Device 57--------- 58 59USBBus : public Bus 60------ 61 62USBDevice : public Device 63--------- 64 65SCSIBus : public Bus 66------- 67 68SCSIDevice : public Device 69---------- 70