Files
AynaLivePlayer/controller/core/controller.go
2022-12-23 05:06:57 -08:00

60 lines
1.4 KiB
Go

package core
import (
"AynaLivePlayer/common/logger"
"AynaLivePlayer/controller"
)
var lg = logger.Logger.WithField("Module", "CoreController")
type Controller struct {
liveroom controller.ILiveRoomController `ini:"-"`
player controller.IPlayController `ini:"-"`
lyric controller.ILyricLoader `ini:"-"`
playlist controller.IPlaylistController `ini:"-"`
provider controller.IProviderController `ini:"-"`
plugin controller.IPluginController `ini:"-"`
}
func NewController(
liveroom controller.ILiveRoomController, player controller.IPlayController,
playlist controller.IPlaylistController,
provider controller.IProviderController, plugin controller.IPluginController) controller.IController {
cc := &Controller{
liveroom: liveroom,
player: player,
playlist: playlist,
provider: provider,
plugin: plugin,
}
return cc
}
func (c *Controller) LiveRooms() controller.ILiveRoomController {
return c.liveroom
}
func (c *Controller) PlayControl() controller.IPlayController {
return c.player
}
func (c *Controller) Playlists() controller.IPlaylistController {
return c.playlist
}
func (c *Controller) Provider() controller.IProviderController {
return c.provider
}
func (c *Controller) Plugin() controller.IPluginController {
return c.plugin
}
func (c *Controller) LoadPlugins(plugins ...controller.Plugin) {
c.plugin.LoadPlugins(plugins...)
}
func (c *Controller) CloseAndSave() {
c.plugin.ClosePlugins()
}