How ptsfdtz/litesound works
LiteSound is a desktop music-library and playback application. The main flow runs from the React interface through library and player hooks, the Wails API bridge, and Go application services; library scanning and playback use local media files, while playback audio is served through a local stream server. The README provides no feature details, so broader capabilities are reflected only where the source index or sampled files support them. Some backend subsystem links are necessarily coarse because their implementation excerpts were not provided.
Main entry points: App.tsx Application shell · app.go Application facade · usePlayer.ts Playback engine · service.go Library service
Components 27
Desktop interface
- Application shell
frontend/src/App.tsx - Settings and window
frontend/src/components/HeaderBar/HeaderBar.tsx - Track browser
frontend/src/components/TrackList/TrackList.tsx - Library filters
frontend/src/components/FiltersBar/FiltersBar.tsx - Playlist sidebar
frontend/src/components/PlaylistSidebar/PlaylistSidebar.tsx - Player controls
frontend/src/components/PlayerBar/PlayerBar.tsx - Update dialog
frontend/src/components/UpdateDialog/UpdateDialog.tsx
Frontend behavior
- Library state
frontend/src/hooks/useMusicLibrary.ts - Playback engine
frontend/src/hooks/usePlayer.ts - Playback queue
frontend/src/hooks/usePlaybackQueue.ts - Playlist state
frontend/src/hooks/usePlaylists.ts - Theme state
frontend/src/hooks/useTheme.ts - Update state
frontend/src/hooks/useUpdater.ts - Wails API client
frontend/src/services/api.ts - Generated Go bindings
frontend/wailsjs/go/app/App.js - Shared data models
frontend/wailsjs/go/models.ts
Application services
- Application facade
internal/app/app.go - Library service
internal/library/service.go - Library cache
internal/library/cache.go - Media processing
internal/media - Persistent state
internal/state/state.go - Update service
internal/update/service.go
Platform integrations
- System features
internal/system
Other components
- Listener
- Music files
- Wails runtime
- GitHub releases
Connections 29
- Listener → Application shell: uses
frontend/src/App.tsx - Application shell → Library state: loads library
frontend/src/App.tsx - Application shell → Playlist state: manages playlists
frontend/src/App.tsx - Application shell → Playback engine: controls playback
frontend/src/App.tsx - Application shell → Playback queue: builds queue
frontend/src/App.tsx - Application shell → Theme state: reads theme
frontend/src/App.tsx - Application shell → Update state: checks updates
frontend/src/App.tsx - Application shell → Settings and window: renders
frontend/src/App.tsx - Application shell → Track browser: renders
frontend/src/App.tsx - Application shell → Library filters: renders
frontend/src/App.tsx - Application shell → Playlist sidebar: renders
frontend/src/App.tsx - Application shell → Player controls: renders
frontend/src/App.tsx - Application shell → Update dialog: renders
frontend/src/App.tsx - Library state → Wails API client: requests library
frontend/src/hooks/useMusicLibrary.ts - Playback engine → Wails API client: requests playback data
frontend/src/hooks/usePlayer.ts - Wails API client → Generated Go bindings: invokes methods
frontend/src/services/api.ts - Generated Go bindings → Application facade: dispatches calls
frontend/wailsjs/go/app/App.js - Application facade → Library service: constructs service
internal/app/app.go - Application facade → Persistent state: constructs store
internal/app/app.go - Application facade → System features: starts platform features
internal/app/app.go - Application facade → Update service: constructs service
internal/app/app.go - Application facade → Media processing: starts stream server
internal/app/app.go - Library service → Library cache: uses cache
- Library service → Music files: scans files
- Media processing → Music files: reads audio
- Playback engine → Media processing: plays stream
- Update service → GitHub releases: fetches releases
internal/update/service.go - Settings and window → Wails runtime: controls window
frontend/src/components/HeaderBar/HeaderBar.tsx - Application facade → Wails runtime: uses runtime
internal/app/app.go