How adamgoodridge/sequence-track-player works
Media Player Shuffler is a Spring Boot podcast player. Users navigate filesystem-backed feeds or request random playback; the server builds track state, exposes playback/navigation, and supports bookmarks and calendar/statistics views. Settings and shortcuts shape playback and organization. The README documents these capabilities, while sampled services and the source index confirm selected internal calls. Several controllers and filesystem details were not sampled, so their workflow links are shown as unverified rather than asserted.
Main entry points: FeedService.java Feed orchestration · AudioIOFileManagerService.java Track selection · ShortcutService.java Feed shortcuts · NasConnectorFileSystem.java NAS filesystem
Components 25
Web and navigation
- Directory browser
src/main/java/net/adamgoodridge/sequencetrackplayer/browser/BrowserController.java - Feed endpoints
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedController.java - Feed JSON API
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedJsonController.java
Feed playback
- Feed orchestration
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Track selection
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/AudioIOFileManagerService.java - Loaded feed state
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/AudioFeeder.java - Track position
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/AudioIOFileManager.java - ID sequencing
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/sequence/SequenceGeneratorService.java - Track controls
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/trackcontrol/TrackControl.java
Filesystem media
- NAS filesystem
src/main/java/net/adamgoodridge/sequencetrackplayer/filesystem/NasConnectorFileSystem.java - Directory service
src/main/java/net/adamgoodridge/sequencetrackplayer/filesystem/directory/NasConnectorService.java - Feed item model
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/DataItem.java - Calendar dates
src/main/java/net/adamgoodridge/sequencetrackplayer/thymeleaf/DateForCalendarView.java - Filesystem constants
src/main/java/net/adamgoodridge/sequencetrackplayer/constanttext/ConstantTextFileSystem.java
Organization and preferences
- Track bookmarks
src/main/java/net/adamgoodridge/sequencetrackplayer/bookmark/BookmarkedAudioService.java - Bookmark records
src/main/java/net/adamgoodridge/sequencetrackplayer/bookmark/BookmarkedAudio.java - Playback settings
src/main/java/net/adamgoodridge/sequencetrackplayer/settings/SettingService.java - Setting definitions
src/main/java/net/adamgoodridge/sequencetrackplayer/settings/SettingName.java - Feed shortcuts
src/main/java/net/adamgoodridge/sequencetrackplayer/shortcut/ShortcutService.java - Shortcut records
src/main/java/net/adamgoodridge/sequencetrackplayer/shortcut/Shortcut.java - Playback constants
src/main/java/net/adamgoodridge/sequencetrackplayer/constanttext/ConstantText.java
Playback insights
- Playback statistics
src/main/java/net/adamgoodridge/sequencetrackplayer/statistic/StatisticService.java - Statistic records
src/main/java/net/adamgoodridge/sequencetrackplayer/statistic/Statistic.java - Live feed status
src/main/java/net/adamgoodridge/sequencetrackplayer/livefeeder/LiveFeederService.java
Other components
- Listener
Connections 26
- Listener → Directory browser: browses
- Listener → Feed endpoints: requests playback
- Directory browser → Feed orchestration: requests feeds
src/main/java/net/adamgoodridge/sequencetrackplayer/browser/BrowserController.java - Feed endpoints → Feed orchestration: delegates to
- Feed JSON API → Feed orchestration: delegates to
- Feed orchestration → Track selection: creates feeds
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Feed orchestration → Loaded feed state: stores state
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Feed orchestration → ID sequencing: resets sequence
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Feed orchestration → NAS filesystem: lists feeds
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Feed orchestration → Playback settings: reads preferences
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Feed orchestration → Feed shortcuts: loads shortcuts
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Feed orchestration → Track controls: moves tracks
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/FeedService.java - Track selection → Playback settings: reads preferences
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/AudioIOFileManagerService.java - Track selection → Track position: creates position state
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/AudioIOFileManagerService.java - Directory service → Feed item model: returns items
src/main/java/net/adamgoodridge/sequencetrackplayer/filesystem/directory/NasConnectorService.java - Directory service → Calendar dates: returns calendar dates
src/main/java/net/adamgoodridge/sequencetrackplayer/filesystem/directory/NasConnectorService.java - Track bookmarks → Feed orchestration: retrieves loaded track
src/main/java/net/adamgoodridge/sequencetrackplayer/bookmark/BookmarkedAudioService.java - Track bookmarks → Bookmark records: saves bookmarks
src/main/java/net/adamgoodridge/sequencetrackplayer/bookmark/BookmarkedAudioService.java - Feed shortcuts → NAS filesystem: resolves logos
src/main/java/net/adamgoodridge/sequencetrackplayer/shortcut/ShortcutService.java - Feed shortcuts → Shortcut records: saves shortcuts
src/main/java/net/adamgoodridge/sequencetrackplayer/shortcut/ShortcutService.java - Playback settings → Setting definitions: uses definitions
src/main/java/net/adamgoodridge/sequencetrackplayer/settings/SettingService.java - Playback statistics → Statistic records: reads and writes
src/main/java/net/adamgoodridge/sequencetrackplayer/statistic/StatisticService.java - NAS filesystem → Filesystem constants: uses path settings
src/main/java/net/adamgoodridge/sequencetrackplayer/filesystem/NasConnectorFileSystem.java - Track selection → Playback constants: uses playback values
src/main/java/net/adamgoodridge/sequencetrackplayer/feeder/AudioIOFileManagerService.java - Listener → Playback statistics: views listening summaries
- Listener → Live feed status: views live status