Skip to content

Commit

Permalink
docs: Add high-level graph of components
Browse files Browse the repository at this point in the history
Gives an overview of the main components of Solaar and
their connections.
  • Loading branch information
MattHag authored and pfps committed May 16, 2024
1 parent d0a3e47 commit 9882d99
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions docs/implementation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand Down

0 comments on commit 9882d99

Please sign in to comment.