2020-07-03 00:17:26 +02:00
|
|
|
// Code generated by Wire. DO NOT EDIT.
|
|
|
|
|
|
|
|
//go:generate wire
|
|
|
|
//+build !wireinject
|
|
|
|
|
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
2020-07-10 18:45:58 +02:00
|
|
|
"github.com/deluan/navidrome/core"
|
|
|
|
"github.com/deluan/navidrome/core/transcoder"
|
2020-07-03 00:17:26 +02:00
|
|
|
"github.com/deluan/navidrome/persistence"
|
|
|
|
"github.com/deluan/navidrome/scanner"
|
|
|
|
"github.com/deluan/navidrome/server"
|
|
|
|
"github.com/deluan/navidrome/server/app"
|
|
|
|
"github.com/deluan/navidrome/server/subsonic"
|
|
|
|
"github.com/google/wire"
|
2020-10-27 23:19:56 +01:00
|
|
|
"sync"
|
2020-07-03 00:17:26 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
// Injectors from wire_injectors.go:
|
|
|
|
|
|
|
|
func CreateServer(musicFolder string) *server.Server {
|
|
|
|
dataStore := persistence.New()
|
2020-10-25 03:43:59 +01:00
|
|
|
serverServer := server.New(dataStore)
|
2020-07-03 00:17:26 +02:00
|
|
|
return serverServer
|
|
|
|
}
|
|
|
|
|
|
|
|
func CreateAppRouter() *app.Router {
|
|
|
|
dataStore := persistence.New()
|
|
|
|
router := app.New(dataStore)
|
|
|
|
return router
|
|
|
|
}
|
|
|
|
|
2020-10-25 03:43:59 +01:00
|
|
|
func CreateSubsonicAPIRouter() *subsonic.Router {
|
2020-07-03 00:17:26 +02:00
|
|
|
dataStore := persistence.New()
|
2020-10-27 22:02:20 +01:00
|
|
|
artworkCache := core.GetImageCache()
|
2020-07-31 15:31:19 +02:00
|
|
|
artwork := core.NewArtwork(dataStore, artworkCache)
|
2020-07-03 00:17:26 +02:00
|
|
|
transcoderTranscoder := transcoder.New()
|
2020-10-27 22:02:20 +01:00
|
|
|
transcodingCache := core.GetTranscodingCache()
|
2020-07-10 18:45:58 +02:00
|
|
|
mediaStreamer := core.NewMediaStreamer(dataStore, transcoderTranscoder, transcodingCache)
|
2020-08-04 18:34:40 +02:00
|
|
|
archiver := core.NewArchiver(dataStore)
|
2020-10-27 16:01:40 +01:00
|
|
|
players := core.NewPlayers(dataStore)
|
2020-10-20 21:46:18 +02:00
|
|
|
client := core.LastFMNewClient()
|
2020-10-19 01:10:11 +02:00
|
|
|
spotifyClient := core.SpotifyNewClient()
|
2020-10-20 21:46:18 +02:00
|
|
|
externalInfo := core.NewExternalInfo(dataStore, client, spotifyClient)
|
2020-10-27 23:19:56 +01:00
|
|
|
scanner := GetScanner()
|
|
|
|
router := subsonic.New(dataStore, artwork, mediaStreamer, archiver, players, externalInfo, scanner)
|
2020-10-25 03:43:59 +01:00
|
|
|
return router
|
2020-07-03 00:17:26 +02:00
|
|
|
}
|
|
|
|
|
2020-10-27 23:19:56 +01:00
|
|
|
func createScanner() scanner.Scanner {
|
|
|
|
dataStore := persistence.New()
|
|
|
|
artworkCache := core.GetImageCache()
|
|
|
|
artwork := core.NewArtwork(dataStore, artworkCache)
|
2020-10-31 05:35:20 +01:00
|
|
|
cacheWarmer := core.NewCacheWarmer(artwork, artworkCache)
|
2020-10-27 23:19:56 +01:00
|
|
|
scannerScanner := scanner.New(dataStore, cacheWarmer)
|
|
|
|
return scannerScanner
|
|
|
|
}
|
|
|
|
|
2020-07-03 00:17:26 +02:00
|
|
|
// wire_injectors.go:
|
|
|
|
|
2020-10-27 23:19:56 +01:00
|
|
|
var allProviders = wire.NewSet(core.Set, subsonic.New, app.New, persistence.New)
|
|
|
|
|
2020-10-31 05:35:20 +01:00
|
|
|
// Scanner must be a Singleton
|
2020-10-27 23:19:56 +01:00
|
|
|
var (
|
|
|
|
onceScanner sync.Once
|
|
|
|
scannerInstance scanner.Scanner
|
|
|
|
)
|
|
|
|
|
|
|
|
func GetScanner() scanner.Scanner {
|
|
|
|
onceScanner.Do(func() {
|
|
|
|
scannerInstance = createScanner()
|
|
|
|
})
|
|
|
|
return scannerInstance
|
|
|
|
}
|