How bsoto-fc/voyager works
Voyager is a desktop MP3-file manager. The main workflow lets a user choose a music directory, scans audio tags and artwork, stores library metadata, then browses and searches the catalog, edits details, and plays a selected track. The graph preserves the documented library, search, metadata, artwork, and playback areas. Relationships are limited to calls or data flow visible in supplied excerpts and the SOURCE INDEX; several UI capabilities are represented by their source files, but unsampled behavior is not assumed.
Main entry points: MainScreen.kt Main screen · DatabaseDriver.kt SQLite catalog · AlbumCoversColumn.kt Album covers · SongInfoColumn.kt Song details
Components 16
Desktop app
- App entry
app/src/main/kotlin/mx/unam/ciencias/myp/App.kt - Main screen
app/src/main/kotlin/mx/unam/ciencias/myp/ui/MainScreen.kt
Library ingest
- Audio scanner
app/src/main/kotlin/mx/unam/ciencias/myp/miner/Miner.kt - Song metadata
app/src/main/kotlin/mx/unam/ciencias/myp/miner/SongMetadata.kt
Catalog data
- SQLite catalog
app/src/main/kotlin/mx/unam/ciencias/myp/db/DatabaseDriver.kt - Catalog records
app/src/main/kotlin/mx/unam/ciencias/myp/db/DbDataClasses.kt
Browse and edit
- Library browser
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AudioLibraryColumn.kt - Advanced search
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AdvancedSearchDialog.kt - Navigation
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/NavigationColumn.kt - Album covers
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AlbumCoversColumn.kt - Song details
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/SongInfoColumn.kt - Album details
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AlbumInfoColumn.kt - Performer editor
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/EditPerformerDialog.kt
Playback
- Audio player UI
app/src/main/kotlin/mx/unam/ciencias/myp/ui/audio/AudioPlayer.kt - Gadulka player
Other components
- User
Connections 23
- User → App entry: launches
README.md - App entry → Main screen: opens
- Main screen → Audio scanner: starts scan
app/src/main/kotlin/mx/unam/ciencias/myp/ui/MainScreen.kt - Audio scanner → Song metadata: creates
app/src/main/kotlin/mx/unam/ciencias/myp/miner/Miner.kt - Main screen → SQLite catalog: initializes
app/src/main/kotlin/mx/unam/ciencias/myp/ui/MainScreen.kt - Main screen → Song metadata: receives
app/src/main/kotlin/mx/unam/ciencias/myp/ui/MainScreen.kt - SQLite catalog → Song metadata: uses
app/src/main/kotlin/mx/unam/ciencias/myp/db/DatabaseDriver.kt - Library browser → SQLite catalog: queries
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AudioLibraryColumn.kt - Advanced search → SQLite catalog: queries
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AdvancedSearchDialog.kt - Main screen → Library browser: renders
- Main screen → Navigation: renders
app/src/main/kotlin/mx/unam/ciencias/myp/ui/MainScreen.kt - Main screen → Song details: renders
- Main screen → Album details: renders
- Main screen → Album covers: renders
- Album covers → SQLite catalog: loads albums
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AlbumCoversColumn.kt - Song details → SQLite catalog: reads and updates
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/SongInfoColumn.kt - Album details → SQLite catalog: updates album
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AlbumInfoColumn.kt - Album details → Performer editor: opens editor
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AlbumInfoColumn.kt - Song details → Performer editor: opens editor
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/SongInfoColumn.kt - Performer editor → SQLite catalog: updates performer
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/EditPerformerDialog.kt - Navigation → Audio player UI: shows player
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/NavigationColumn.kt - Album covers → Audio player UI: renders player
app/src/main/kotlin/mx/unam/ciencias/myp/ui/columns/AlbumCoversColumn.kt - Audio player UI → Gadulka player: controls playback