# jpdcs/songhub-smart-link architecture

> Architecture diagram of the GitHub repository jpdcs/songhub-smart-link, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jpdcs/songhub-smart-link
- Repository: https://github.com/jpdcs/songhub-smart-link

## Overview

SongHub Smart Link Remote is an Android companion app for karaoke systems. The documented workflow is: connect to a host over the local network, search for songs, reserve or queue them, control playback, and view synchronized lyrics and screens. The README also documents display customization and compatibility with SongHub PC, Android hosts, and SongHub Legacy/MegaOke. Only the README is present in the supplied tree, so component paths and internal wiring cannot be verified.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_connection["Connection"]
  node_app["Android remote app"]
  node_connection_settings["Connection settings"]
end

subgraph group_karaoke["Karaoke control"]
  node_song_search["Song search"]
  node_queue_reservation["Queue reservation"]
  node_playback_controls["Playback controls"]
end

subgraph group_experience["Live display"]
  node_live_lyrics["Live lyrics"]
  node_karaoke_screens["Interludes and scores"]
  node_display_customization["Display customization"]
end

node_user(("Remote user"))
node_karaoke_host["Karaoke host"]

node_user -->|"uses"| node_app
node_app -->|"opens"| node_connection_settings
node_connection_settings -->|"connects by IP"| node_karaoke_host
node_app -->|"searches"| node_song_search
node_song_search -->|"requests songs"| node_karaoke_host
node_app -->|"reserves songs"| node_queue_reservation
node_queue_reservation -->|"updates queue"| node_karaoke_host
node_app -->|"sends controls"| node_playback_controls
node_playback_controls -->|"controls playback"| node_karaoke_host
node_karaoke_host -->|"streams synchronized lyrics"| node_live_lyrics
node_karaoke_host -->|"sends screen content"| node_karaoke_screens
node_user -->|"customizes"| node_display_customization

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_connection_settings,node_user toneBlue
class node_song_search,node_queue_reservation,node_playback_controls toneAmber
class node_live_lyrics,node_karaoke_screens,node_display_customization toneMint
class node_karaoke_host toneIndigo
```

## Components

### Connection

- **Android remote app**
- **Connection settings**

### Karaoke control

- **Song search**
- **Queue reservation**
- **Playback controls**

### Live display

- **Live lyrics**
- **Interludes and scores**
- **Display customization**

### Other components

- **Remote user**
- **Karaoke host**

## Connections

- Remote user → Android remote app: uses
- Android remote app → Connection settings: opens
- Connection settings → Karaoke host: connects by IP
- Android remote app → Song search: searches
- Song search → Karaoke host: requests songs
- Android remote app → Queue reservation: reserves songs
- Queue reservation → Karaoke host: updates queue
- Android remote app → Playback controls: sends controls
- Playback controls → Karaoke host: controls playback
- Karaoke host → Live lyrics: streams synchronized lyrics
- Karaoke host → Interludes and scores: sends screen content
- Remote user → Display customization: customizes
