// Code generated by Wire. DO NOT EDIT.

//go:generate wire
//+build !wireinject

package subsonic

import (
	"github.com/deluan/navidrome/core"
	"github.com/google/wire"
)

// Injectors from wire_injectors.go:

func initSystemController(router *Router) *SystemController {
	systemController := NewSystemController()
	return systemController
}

func initBrowsingController(router *Router) *BrowsingController {
	dataStore := router.DataStore
	externalInfo := router.ExternalInfo
	browsingController := NewBrowsingController(dataStore, externalInfo)
	return browsingController
}

func initAlbumListController(router *Router) *AlbumListController {
	dataStore := router.DataStore
	nowPlaying := core.NewNowPlayingRepository()
	albumListController := NewAlbumListController(dataStore, nowPlaying)
	return albumListController
}

func initMediaAnnotationController(router *Router) *MediaAnnotationController {
	dataStore := router.DataStore
	nowPlaying := core.NewNowPlayingRepository()
	mediaAnnotationController := NewMediaAnnotationController(dataStore, nowPlaying)
	return mediaAnnotationController
}

func initPlaylistsController(router *Router) *PlaylistsController {
	dataStore := router.DataStore
	playlistsController := NewPlaylistsController(dataStore)
	return playlistsController
}

func initSearchingController(router *Router) *SearchingController {
	dataStore := router.DataStore
	searchingController := NewSearchingController(dataStore)
	return searchingController
}

func initUsersController(router *Router) *UsersController {
	usersController := NewUsersController()
	return usersController
}

func initMediaRetrievalController(router *Router) *MediaRetrievalController {
	artwork := router.Artwork
	dataStore := router.DataStore
	mediaRetrievalController := NewMediaRetrievalController(artwork, dataStore)
	return mediaRetrievalController
}

func initStreamController(router *Router) *StreamController {
	mediaStreamer := router.Streamer
	archiver := router.Archiver
	dataStore := router.DataStore
	streamController := NewStreamController(mediaStreamer, archiver, dataStore)
	return streamController
}

func initBookmarksController(router *Router) *BookmarksController {
	dataStore := router.DataStore
	bookmarksController := NewBookmarksController(dataStore)
	return bookmarksController
}

func initLibraryScanningController(router *Router) *LibraryScanningController {
	scanner := router.Scanner
	libraryScanningController := NewLibraryScanningController(scanner)
	return libraryScanningController
}

// wire_injectors.go:

var allProviders = wire.NewSet(
	NewSystemController,
	NewBrowsingController,
	NewAlbumListController,
	NewMediaAnnotationController,
	NewPlaylistsController,
	NewSearchingController,
	NewUsersController,
	NewMediaRetrievalController,
	NewStreamController,
	NewBookmarksController,
	NewLibraryScanningController, core.NewNowPlayingRepository, wire.FieldsOf(new(*Router), "DataStore", "Artwork", "Streamer", "Archiver", "ExternalInfo", "Scanner"),
)
