navidrome/cmd/wire_gen.go

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

118 lines
3.0 KiB
Go
Raw Normal View History

2020-07-03 00:17:26 +02:00
// Code generated by Wire. DO NOT EDIT.
//go:generate go run github.com/google/wire/cmd/wire
2020-07-03 00:17:26 +02:00
//+build !wireinject
package cmd
import (
"github.com/google/wire"
"github.com/navidrome/navidrome/core"
2021-06-20 02:56:56 +02:00
"github.com/navidrome/navidrome/core/scrobbler"
"github.com/navidrome/navidrome/core/transcoder"
2020-07-03 00:17:26 +02:00
"github.com/navidrome/navidrome/persistence"
"github.com/navidrome/navidrome/scanner"
"github.com/navidrome/navidrome/scheduler"
2020-07-03 00:17:26 +02:00
"github.com/navidrome/navidrome/server"
"github.com/navidrome/navidrome/server/events"
2021-06-14 01:15:41 +02:00
"github.com/navidrome/navidrome/server/nativeapi"
2020-07-03 00:17:26 +02:00
"github.com/navidrome/navidrome/server/subsonic"
2021-06-20 02:56:56 +02:00
"sync"
2020-07-03 00:17:26 +02:00
)
// Injectors from wire_injectors.go:
func CreateServer(musicFolder string) *server.Server {
dataStore := persistence.New()
serverServer := server.New(dataStore)
2020-07-03 00:17:26 +02:00
return serverServer
}
2021-06-14 01:15:41 +02:00
func CreateNativeAPIRouter() *nativeapi.Router {
2020-07-03 00:17:26 +02:00
dataStore := persistence.New()
broker := GetBroker()
share := core.NewShare(dataStore)
2021-06-14 01:15:41 +02:00
router := nativeapi.New(dataStore, broker, share)
2020-07-03 00:17:26 +02:00
return router
}
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()
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()
mediaStreamer := core.NewMediaStreamer(dataStore, transcoderTranscoder, transcodingCache)
archiver := core.NewArchiver(dataStore)
2020-10-27 16:01:40 +01:00
players := core.NewPlayers(dataStore)
externalMetadata := core.NewExternalMetadata(dataStore)
scanner := GetScanner()
broker := GetBroker()
2021-06-20 02:56:56 +02:00
scrobblerScrobbler := scrobbler.New(dataStore)
router := subsonic.New(dataStore, artwork, mediaStreamer, archiver, players, externalMetadata, scanner, broker, scrobblerScrobbler)
return router
2020-07-03 00:17:26 +02:00
}
func createScanner() scanner.Scanner {
dataStore := persistence.New()
artworkCache := core.GetImageCache()
artwork := core.NewArtwork(dataStore, artworkCache)
cacheWarmer := core.NewCacheWarmer(artwork, artworkCache)
broker := GetBroker()
scannerScanner := scanner.New(dataStore, cacheWarmer, broker)
return scannerScanner
}
func createBroker() events.Broker {
broker := events.NewBroker()
return broker
}
func createScheduler() scheduler.Scheduler {
schedulerScheduler := scheduler.New()
return schedulerScheduler
}
2020-07-03 00:17:26 +02:00
// wire_injectors.go:
2021-06-14 01:15:41 +02:00
var allProviders = wire.NewSet(core.Set, subsonic.New, nativeapi.New, persistence.New, GetBroker)
// Scanner must be a Singleton
var (
onceScanner sync.Once
scannerInstance scanner.Scanner
)
func GetScanner() scanner.Scanner {
onceScanner.Do(func() {
scannerInstance = createScanner()
})
return scannerInstance
}
// Broker must be a Singleton
var (
onceBroker sync.Once
brokerInstance events.Broker
)
func GetBroker() events.Broker {
onceBroker.Do(func() {
brokerInstance = createBroker()
})
return brokerInstance
}
// Scheduler must be a Singleton
var (
onceScheduler sync.Once
schedulerInstance scheduler.Scheduler
)
func GetScheduler() scheduler.Scheduler {
onceScheduler.Do(func() {
schedulerInstance = createScheduler()
})
return schedulerInstance
}