rewrite using IoC and DI

This commit is contained in:
Aynakeya
2022-12-23 05:06:57 -08:00
parent 0498d2dbf3
commit c47d338a9e
88 changed files with 2295 additions and 1856 deletions

View File

@@ -0,0 +1,59 @@
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()
}