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