// Code generated by Wire. DO NOT EDIT.

//go:generate go run github.com/google/wire/cmd/wire
//+build !wireinject

package subsonic

import (
	"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
	externalMetadata := router.ExternalMetadata
	browsingController := NewBrowsingController(dataStore, externalMetadata)
	return browsingController
}

func initAlbumListController(router *Router) *AlbumListController {
	dataStore := router.DataStore
	playTracker := router.Scrobbler
	albumListController := NewAlbumListController(dataStore, playTracker)
	return albumListController
}

func initMediaAnnotationController(router *Router) *MediaAnnotationController {
	dataStore := router.DataStore
	playTracker := router.Scrobbler
	broker := router.Broker
	mediaAnnotationController := NewMediaAnnotationController(dataStore, playTracker, broker)
	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, wire.FieldsOf(
		new(*Router),
		"DataStore",
		"Artwork",
		"Streamer",
		"Archiver",
		"ExternalMetadata",
		"Scanner",
		"Broker",
		"Scrobbler",
	),
)