Devices: Move documentation to docs/develop/apps

Change-Id: I2ff31810df1a4afc16533d3820af61a1d2a8ccd1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11172
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
Leo Rouleau
2026-06-25 06:50:05 +00:00
committed by Adrien Destugues
parent bbec8f4fad
commit 3e8d044d12
7 changed files with 208 additions and 171 deletions
+146
View File
@@ -0,0 +1,146 @@
DeviceManager Design
====================
Requirements
------------
1) Graphically list each device in the system, with all the information available for that specific device type:
- PCI
- USB
- SCSI
- Bluetooth?
- ISA?
- ATAPI?
- AHCI?
- Firewire?
2) Generate a comprehensive text listing of the devices present to allow users to share detailed information with developers
- Generate an email with this information attached
3) Let the user generate a report on how well Haiku supports the devices in the system.
- Present a list of devices and per device a star rating on the support, and provide a space for comments on the device support.
- For each device allow comments
- Include all available information for the device (including loaded driver)
- Perhaps this can go into the Haikuware compatibility database?
4) Arrange the devices in different orders (by category, by connection, by bus type, by resource assignment?)
Graphical Design
----------------
::
+=========+
| Devices |
+=========+======================================================+
| Devices | Help | |
+----------------------------------------------------------------+
| +------------------------+-----------------------------------+ |
| | Sort by: [Category v] | / Basic \/ <Bus> \/ Advanced \ | |
| | ------------------- | + +--------+----------+--+ | |
| | v Audio/Video Devices | | Device Name: Netlink 5787M | | |
| | Hauppauge WinTV | | Manufacturer: Broadcom | | |
| | Intel HDA Audio | | Category: Network Devices | | |
| | v Human Interface Dev. | | Driver used: broadcom570x | | |
| | USB Mouse | | | | |
| | USB Keyboard | | | | |
| | v Network Devices | | | | |
| | -->Broadcom 5787M<-- | | | | |
| | Intel 4965 WIFI | | | | |
| | v Graphics Card | | | | |
| | NVidia 8600M GT | | | | |
| | .... | +-------------------------------+ | |
| +------------------------+-----------------------------------+ |
| +-------------------------+ +------------+ +-----------+ |
| | Report hardware support | | Gen. email | | Gen. Text | |
| +-------------------------+ +------------+ +-----------+ |
+================================================================+
Menu:
Devices
- Refresh devices
- Report compatibility
- Generate system information
- \-----
- About Devices
- \-----
- Quit
Interface details:
- The left list is an OutlineListView,
- Is inside a scroll container
- Will contain nice icons per type/device
- Clicking on a device will show the details in the right view
- The right view contains 3 tabs:
- Basic tab: Information available for every kind device
- <Bus> tab: Information specific to the bus type of device. (PCI, USB, etc)
- Advanced tab: Has a list of name-value pairs of all available information
- Sort by allows the user to arrange the treeview by:
- Category:
- Connection
- Bus type
- Report Hardware Support
- List all devices
- For each device
When you click Report Hardware Support, this appears:
::
+=========================+
| Report Hardware Support |
+=========================+============================+
| Report Device Supported Comment |
| [x] Broadcom Netlink 5787M ***** _________ |
| [x] Hauppauge WinTV ***** _________ |
| [x] Intel 4965 WIFI ..... _________ |
| [x] Intel HDA Audio ****. _________ |
| [x] NVidia 8600M GT ***.. _________ |
| [x] USB Keyboard ***** _________ |
| [x] USB Mouse ***** _________ |
| [ ] Intel 82801 PCI Bridge ..... _________ |
| [ ] Intel 82801H PCI Express ..... _________ |
| |
| If you wish, you can leave your contact details so |
| developers can get in touch with you for questions |
| about your devices. These will be stored privately. |
| |
| Name: _______________ Email: __________________ |
| |
| Haiku-os.org account: __________________________ |
| |
| +--------------------+ +---------------+ |
| | Preview submission | | Generate File | |
| +--------------------+ +---------------+ |
+======================================================+
Interface details:
------------------
- All devices are _not_ selected for report by default
- As soon as a rating is given, it is selected to be reported
- Preview submission will popup the generated list with a submit button
- Generate file will generate a file that can be uploaded manually, or emailed to a specific address.
- As you mouse over the rating, a popup will appear detailing what each star stands for:
::
..... : No support
X.... : Crashes Haiku
**... : Detected but doesn't work with 3rd party driver
***.. : Detected but doesn't work out of the box
****. : Detected and works with 3rd party driver
***** : Detected and works out of the box
@@ -1,4 +1,8 @@
DeviceManager Specification
===========================
Each device has:
- Name (long/short)
- Manufacturer (long/short)
- Category (one master list, each bus type maps its device types onto the master list)
@@ -8,62 +12,65 @@ Each device has:
- Its connection parent, if applicable
Each source has: (currently the RescanDevices method does this)
- Init function
- Scan method that returns the devices.
- DevManSource, USBSource, FWSource, ...
DeviceManager Specification
===========================
DeviceManager : BApplication
-------------
----------------------------
DeviceManagerView : BView
-----------------
-------------------------
Device : public BStringItem
------
BString GetName() const;
BString GetManufacturer() const;
Category GetCategory() const;
BString DriverUsed() const;
BString DevPathsPublished() const;
BView Get
private:
BString _name;
BString _manufacturer;
Category _category;
BString _driverUsed;
BString devPathsPublished;
map<BString, BString> _attributes;
---------------------------
::
BString GetName() const;
BString GetManufacturer() const;
Category GetCategory() const;
BString DriverUsed() const;
BString DevPathsPublished() const;
BView Get
private:
BString _name;
BString _manufacturer;
Category _category;
BString _driverUsed;
BString devPathsPublished;
map<BString, BString> _attributes;
Bus : public BStringItem
---
virtual bool IsPresent() const = 0;
virtual Scan() = 0;
virtual vector<Device *> Devices() = 0;
------------------------
::
virtual bool IsPresent() const = 0;
virtual Scan() = 0;
virtual vector<Device *> Devices() = 0;
PCIBus : public Bus
------
-------------------
PCIDevice: public Device
---------
------------------------
ISABus : public Bus
-----
-------------------
ISADevice : public Device
---------
-------------------------
USBBus : public Bus
------
-------------------
USBDevice : public Device
---------
-------------------------
SCSIBus : public Bus
-------
--------------------
SCSIDevice : public Device
----------
--------------------------
+13
View File
@@ -0,0 +1,13 @@
TODO
====
* Fix view color?
* Fix forwarding of messages to view
* Bottom scrollbar strangeness
* Reduce executable size?
* Find a place for unknown devices (or decypher the names better)
* Reselect currently selected on sort-by change - unique device id (device_node_cookie?)
* Check for keyboard navigation
* Loading and saving settings (sort by, position, size and sizes of views)
* Icons per device type
* Index attributes by enum, not string
+9
View File
@@ -0,0 +1,9 @@
Devices
=======
.. toctree::
:maxdepth: 2
Design
Specification
Todo
+1
View File
@@ -50,6 +50,7 @@ Table of contents
/kernel/index
/file_systems/index
/drivers/index
/apps/devices/index
/apps/haikudepot/server
/debugging/index
-128
View File
@@ -1,128 +0,0 @@
DeviceManager Design
====================
Requirements
------------
1) Graphically list each device in the system, with all the information available for that specific device type:
- PCI
- USB
- SCSI
- Bluetooth?
- ISA?
- ATAPI?
- AHCI?
- Firewire?
2) Generate a comprehensive text listing of the devices present to allow users to share detailed information with developers
- Generate an email with this information attached
3) Let the user generate a report on how well Haiku supports the devices in the system.
- Present a list of devices and per device a star rating on the support, and provide a space for comments on the device support.
- For each device allow comments
- Include all available information for the device (including loaded driver)
- Perhaps this can go into the Haikuware compatibility database?
4) Arrange the devices in different orders (by category, by connection, by bus type, by resource assignment?)
Graphical Design
----------------
+=========+
| Devices |
+=========+======================================================+
| Devices | Help | |
+----------------------------------------------------------------+
| +------------------------+-----------------------------------+ |
| | Sort by: [Category v] | / Basic \/ <Bus> \/ Advanced \ | |
| | ------------------- | + +--------+----------+--+ | |
| | v Audio/Video Devices | | Device Name: Netlink 5787M | | |
| | Hauppauge WinTV | | Manufacturer: Broadcom | | |
| | Intel HDA Audio | | Category: Network Devices | | |
| | v Human Interface Dev. | | Driver used: broadcom570x | | |
| | USB Mouse | | | | |
| | USB Keyboard | | | | |
| | v Network Devices | | | | |
| | -->Broadcom 5787M<-- | | | | |
| | Intel 4965 WIFI | | | | |
| | v Graphics Card | | | | |
| | NVidia 8600M GT | | | | |
| | .... | +-------------------------------+ | |
| +------------------------+-----------------------------------+ |
| +-------------------------+ +------------+ +-----------+ |
| | Report hardware support | | Gen. email | | Gen. Text | |
| +-------------------------+ +------------+ +-----------+ |
+================================================================+
Menu:
Devices
- Refresh devices
- Report compatibility
- Generate system information
- -----
- About Devices
- -----
- Quit
Interface details:
- The left list is an OutlineListView,
- Is inside a scroll container
- Will contain nice icons per type/device
- Clicking on a device will show the details in the right view
- The right view contains 3 tabs:
- Basic tab: Information available for every kind device
- <Bus> tab: Information specific to the bus type of device. (PCI, USB, etc)
- Advanced tab: Has a list of name-value pairs of all available information
- Sort by allows the user to arrange the treeview by:
- Category:
- Connection
- Bus type
- Report Hardware Support
- List all devices
- For each device
When you click Report Hardware Support, this appears:
+=========================+
| Report Hardware Support |
+=========================+============================+
| Report Device Supported Comment |
| [x] Broadcom Netlink 5787M ***** _________ |
| [x] Hauppauge WinTV ***** _________ |
| [x] Intel 4965 WIFI ..... _________ |
| [x] Intel HDA Audio ****. _________ |
| [x] NVidia 8600M GT ***.. _________ |
| [x] USB Keyboard ***** _________ |
| [x] USB Mouse ***** _________ |
| [ ] Intel 82801 PCI Bridge ..... _________ |
| [ ] Intel 82801H PCI Express ..... _________ |
| |
| If you wish, you can leave your contact details so |
| developers can get in touch with you for questions |
| about your devices. These will be stored privately. |
| |
| Name: _______________ Email: __________________ |
| |
| Haiku-os.org account: __________________________ |
| |
| +--------------------+ +---------------+ |
| | Preview submission | | Generate File | |
| +--------------------+ +---------------+ |
+======================================================+
Interface details:
------------------
- All devices are _not_ selected for report by default
- As soon as a rating is given, it is selected to be reported
- Preview submission will popup the generated list with a submit button
- Generate file will generate a file that can be uploaded manually, or emailed to a specific address.
- As you mouse over the rating, a popup will appear detailing what each star stands for:
- ..... : No support
- X.... : Crashes Haiku
- **... : Detected but doesn't work with 3rd party driver
- ***.. : Detected but doesn't work out of the box
- ****. : Detected and works with 3rd party driver
- ***** : Detected and works out of the box
-11
View File
@@ -1,11 +0,0 @@
TODO:
* Fix view color?
* Fix forwarding of messages to view
* Bottom scrollbar strangeness
* Reduce executable size?
* Find a place for unknown devices (or decypher the names better)
* Reselect currently selected on sort-by change - unique device id (device_node_cookie?)
* Check for keyboard navigation
* Loading and saving settings (sort by, position, size and sizes of views)
* Icons per device type
* Index attributes by enum, not string