docs: Add high-level graph of components

Gives an overview of the main components of Solaar and
their connections.
This commit is contained in:
MattHag 2024-05-16 01:22:03 +02:00 committed by Peter F. Patel-Schneider
parent d0a3e474c7
commit 9882d99125
1 changed files with 30 additions and 0 deletions

View File

@ -9,6 +9,36 @@ TODO: improve the callback mechanism(s) to support the explicit calls of the UI
Solaar has three main components: code mostly about receivers and devices, code for the command line interface, and code for the graphical user interface.
The following graph shows the main components of Solaar and how they interact.
```mermaid
graph TD
subgraph User interface
U[UI]
C[CLI]
end
subgraph Core
U --> S{Solaar}
C --> S
S --> L[Logitech receiver]
L --> R[Receiver]
L --> D[Device]
S --> B[dbus]
end
subgraph Hardware interface
R --> A
D --> A
A[hidapi]--> P[hid parser]
end
subgraph Peripherals
P <-.-> M[Logitech mouse]
P <-.-> K[Logitech keyboard]
end
```
## Receivers and Devices
The code in `logitech_receiver` is responsible for creating and maintaining receiver (`receiver/Receiver`) and device (`device/Device`) objects for each device on the computer that uses the Logitech HID++ protocol. These objects are discovered in Linux by interacting with the Linux `udev` system using code in `hidapi`.