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 committed May 15, 2024
1 parent bfc0650 commit d792638
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions docs/implementation.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,35 @@ 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.

```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 d792638

Please sign in to comment.